[{"id":"36571363981","type":"PullRequestReviewEvent","actor":{"id":17534804,"login":"shaun-seek","display_login":"shaun-seek","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","avatar_url":"https://avatars.githubusercontent.com/u/17534804?"},"repo":{"id":66796341,"name":"seek-oss/seek-stackable","url":"https://api.github.com/repos/seek-oss/seek-stackable"},"payload":{"action":"created","review":{"id":1938004404,"node_id":"PRR_kwDOA_s7Nc5zg5m0","user":{"login":"shaun-seek","id":17534804,"node_id":"MDQ6VXNlcjE3NTM0ODA0","avatar_url":"https://avatars.githubusercontent.com/u/17534804?v=4","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","html_url":"https://github.com/shaun-seek","followers_url":"https://api.github.com/users/shaun-seek/followers","following_url":"https://api.github.com/users/shaun-seek/following{/other_user}","gists_url":"https://api.github.com/users/shaun-seek/gists{/gist_id}","starred_url":"https://api.github.com/users/shaun-seek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shaun-seek/subscriptions","organizations_url":"https://api.github.com/users/shaun-seek/orgs","repos_url":"https://api.github.com/users/shaun-seek/repos","events_url":"https://api.github.com/users/shaun-seek/events{/privacy}","received_events_url":"https://api.github.com/users/shaun-seek/received_events","type":"User","site_admin":false},"body":"","commit_id":"bfbb19b9e19a9f366034e73bc012749b25e40e75","submitted_at":"2024-03-15T02:15:22Z","state":"approved","html_url":"https://github.com/seek-oss/seek-stackable/pull/16#pullrequestreview-1938004404","pull_request_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","author_association":"COLLABORATOR","_links":{"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16#pullrequestreview-1938004404"},"pull_request":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"}}},"pull_request":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","id":1733834560,"node_id":"PR_kwDOA_s7Nc5nWDdA","html_url":"https://github.com/seek-oss/seek-stackable/pull/16","diff_url":"https://github.com/seek-oss/seek-stackable/pull/16.diff","patch_url":"https://github.com/seek-oss/seek-stackable/pull/16.patch","issue_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16","number":16,"state":"open","locked":false,"title":"Add .fill distribution option to HStack","user":{"login":"shafiqurjelani","id":56019484,"node_id":"MDQ6VXNlcjU2MDE5NDg0","avatar_url":"https://avatars.githubusercontent.com/u/56019484?v=4","gravatar_id":"","url":"https://api.github.com/users/shafiqurjelani","html_url":"https://github.com/shafiqurjelani","followers_url":"https://api.github.com/users/shafiqurjelani/followers","following_url":"https://api.github.com/users/shafiqurjelani/following{/other_user}","gists_url":"https://api.github.com/users/shafiqurjelani/gists{/gist_id}","starred_url":"https://api.github.com/users/shafiqurjelani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shafiqurjelani/subscriptions","organizations_url":"https://api.github.com/users/shafiqurjelani/orgs","repos_url":"https://api.github.com/users/shafiqurjelani/repos","events_url":"https://api.github.com/users/shafiqurjelani/events{/privacy}","received_events_url":"https://api.github.com/users/shafiqurjelani/received_events","type":"User","site_admin":false},"body":"Adding a new distribution option called `fill` in the `HStack` to enable filling overall frames width with the item intrinsicContentSize width without the need for us to give a `fixed` width each time for a `Stack/StackableItem`.\r\n\r\n| existing `.fillEqually` | new `.fill` |\r\n| --- | --- |\r\n| | |\r\n\r\nFor example the above can be recreated with the following example.\r\n\r\n``` \r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n icon,\r\n label,\r\n label2\r\n ]\r\n)\r\n```\r\nBefore `.fill` option being introduced the above code will results in similar to the first picture in the table above. Now the `.fill` distribution option takes the intrinsicContentSize width of an item and set that as the width it need to satisfy on the frames we lay out.\r\n\r\n## Note\r\nFor `.fill` distribution option, when an item cant fit in the `HStack` the item will be dropped off from the view.\r\n\r\nExample :-\r\n```\r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n Icon(),\r\n Label(text: \"Be among the first to apply\"),\r\n Label(text: \"Label 2 something longer longer longer longer\"),\r\n Label(text: \"Label 3 something longer longer longer longer longer longer\"),\r\n ]\r\n)\r\n```\r\nThis will yield something like this with `Label 3...` being drop off from the view because it cant fit.\r\n\r\n\r\n\r\nThis behaviour is similar to what we get when we use the native `UIStackView`. \r\n\r\nExample:\r\n\r\n```\r\nlet view = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 400))\r\n\r\nlet hstack1 = hStack()\r\n\r\nview.addSubview(hstack1)\r\n\r\nhstack1.addArrangedSubview(\r\n label(\"title 1\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"Super long long long long long long title lets see\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"title 3\")\r\n)\r\n```\r\n\r\nThe native `UIStackView` will yield something like this with `title 3` being dropped out because it cant fit.\r\n\r\n\r\n\r\n","created_at":"2024-02-20T02:50:36Z","updated_at":"2024-03-15T02:15:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"075d0056f351e0285059db56673969d44c3102dc","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits","review_comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments","review_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/bfbb19b9e19a9f366034e73bc012749b25e40e75","head":{"label":"seek-oss:tech/add-distribution-option-hstack","ref":"tech/add-distribution-option-hstack","sha":"bfbb19b9e19a9f366034e73bc012749b25e40e75","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-03-12T03:01:25Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":93,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"base":{"label":"seek-oss:master","ref":"master","sha":"b5e4ab039545375389bf7f5b443f4a26435c2ee1","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-03-12T03:01:25Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":93,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"},"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16"},"issue":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16"},"comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments"},"review_comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments"},"review_comment":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits"},"statuses":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/bfbb19b9e19a9f366034e73bc012749b25e40e75"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-15T02:15:23Z","org":{"id":22927121,"login":"seek-oss","gravatar_id":"","url":"https://api.github.com/orgs/seek-oss","avatar_url":"https://avatars.githubusercontent.com/u/22927121?"}},{"id":"36321558325","type":"IssueCommentEvent","actor":{"id":17534804,"login":"shaun-seek","display_login":"shaun-seek","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","avatar_url":"https://avatars.githubusercontent.com/u/17534804?"},"repo":{"id":66796341,"name":"seek-oss/seek-stackable","url":"https://api.github.com/repos/seek-oss/seek-stackable"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16","repository_url":"https://api.github.com/repos/seek-oss/seek-stackable","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/labels{/name}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/events","html_url":"https://github.com/seek-oss/seek-stackable/pull/16","id":2143428850,"node_id":"PR_kwDOA_s7Nc5nWDdA","number":16,"title":"Add .fill distribution option to HStack","user":{"login":"shafiqurjelani","id":56019484,"node_id":"MDQ6VXNlcjU2MDE5NDg0","avatar_url":"https://avatars.githubusercontent.com/u/56019484?v=4","gravatar_id":"","url":"https://api.github.com/users/shafiqurjelani","html_url":"https://github.com/shafiqurjelani","followers_url":"https://api.github.com/users/shafiqurjelani/followers","following_url":"https://api.github.com/users/shafiqurjelani/following{/other_user}","gists_url":"https://api.github.com/users/shafiqurjelani/gists{/gist_id}","starred_url":"https://api.github.com/users/shafiqurjelani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shafiqurjelani/subscriptions","organizations_url":"https://api.github.com/users/shafiqurjelani/orgs","repos_url":"https://api.github.com/users/shafiqurjelani/repos","events_url":"https://api.github.com/users/shafiqurjelani/events{/privacy}","received_events_url":"https://api.github.com/users/shafiqurjelani/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2024-02-20T02:50:36Z","updated_at":"2024-03-07T04:04:09Z","closed_at":null,"author_association":"COLLABORATOR","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","html_url":"https://github.com/seek-oss/seek-stackable/pull/16","diff_url":"https://github.com/seek-oss/seek-stackable/pull/16.diff","patch_url":"https://github.com/seek-oss/seek-stackable/pull/16.patch","merged_at":null},"body":"Adding a new distribution option called `fill` in the `HStack` to enable filling overall frames width with the item intrinsicContentSize width without the need for us to give a `fixed` width each time for a `Stack/StackableItem`.\r\n\r\n| existing `.fillEqually` | new `.fill` |\r\n| --- | --- |\r\n| | |\r\n\r\nFor example the above can be recreated with the following example.\r\n\r\n``` \r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n icon,\r\n label,\r\n label2\r\n ]\r\n)\r\n```\r\nBefore `.fill` option being introduced the above code will results in similar to the first picture in the table above. Now the `.fill` distribution option takes the intrinsicContentSize width of an item and set that as the width it need to satisfy on the frames we lay out.\r\n\r\n## Note\r\nFor `.fill` distribution option, when an item cant fit in the `HStack` the item will be dropped off from the view.\r\n\r\nExample :-\r\n```\r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n Icon(),\r\n Label(text: \"Be among the first to apply\"),\r\n Label(text: \"Label 2 something longer longer longer longer\"),\r\n Label(text: \"Label 3 something longer longer longer longer longer longer\"),\r\n ]\r\n)\r\n```\r\nThis will yield something like this with `Label 3...` being drop off from the view because it cant fit.\r\n\r\n\r\n\r\nThis behaviour is similar to what we get when we use the native `UIStackView`. \r\n\r\nExample:\r\n\r\n```\r\nlet view = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 400))\r\n\r\nlet hstack1 = hStack()\r\n\r\nview.addSubview(hstack1)\r\n\r\nhstack1.addArrangedSubview(\r\n label(\"title 1\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"Super long long long long long long title lets see\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"title 3\")\r\n)\r\n```\r\n\r\nThe native `UIStackView` will yield something like this with `title 3` being dropped out because it cant fit.\r\n\r\n\r\n\r\n","reactions":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments/1982309372","html_url":"https://github.com/seek-oss/seek-stackable/pull/16#issuecomment-1982309372","issue_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16","id":1982309372,"node_id":"IC_kwDOA_s7Nc52J6P8","user":{"login":"shaun-seek","id":17534804,"node_id":"MDQ6VXNlcjE3NTM0ODA0","avatar_url":"https://avatars.githubusercontent.com/u/17534804?v=4","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","html_url":"https://github.com/shaun-seek","followers_url":"https://api.github.com/users/shaun-seek/followers","following_url":"https://api.github.com/users/shaun-seek/following{/other_user}","gists_url":"https://api.github.com/users/shaun-seek/gists{/gist_id}","starred_url":"https://api.github.com/users/shaun-seek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shaun-seek/subscriptions","organizations_url":"https://api.github.com/users/shaun-seek/orgs","repos_url":"https://api.github.com/users/shaun-seek/repos","events_url":"https://api.github.com/users/shaun-seek/events{/privacy}","received_events_url":"https://api.github.com/users/shaun-seek/received_events","type":"User","site_admin":false},"created_at":"2024-03-07T04:04:07Z","updated_at":"2024-03-07T04:04:07Z","author_association":"COLLABORATOR","body":"I was looking at the intrinsicContentSize again https://github.com/seek-oss/seek-stackable/pull/16/files#diff-c872ff7de7b0c5fc10734a5d7fc2d3b4b1adae3f7858c42abb4884d623f3b4bfR89 I think @shafiqurjelani it would be great if you could add some unit tests to better understand what happens if for example the following scenario:\r\n\r\n- We pass a width to the HStack having a fill distribution of 300\r\n- Inside the HStack it has 2 subviews that in total equal 100\r\n\r\nWhat will the intrinsicContentSize of the HStack be? I would assume it should be 100 but would be great to confirm.","reactions":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments/1982309372/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-03-07T04:04:09Z","org":{"id":22927121,"login":"seek-oss","gravatar_id":"","url":"https://api.github.com/orgs/seek-oss","avatar_url":"https://avatars.githubusercontent.com/u/22927121?"}},{"id":"35990889607","type":"PullRequestReviewEvent","actor":{"id":17534804,"login":"shaun-seek","display_login":"shaun-seek","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","avatar_url":"https://avatars.githubusercontent.com/u/17534804?"},"repo":{"id":66796341,"name":"seek-oss/seek-stackable","url":"https://api.github.com/repos/seek-oss/seek-stackable"},"payload":{"action":"created","review":{"id":1899773880,"node_id":"PRR_kwDOA_s7Nc5xPD-4","user":{"login":"shaun-seek","id":17534804,"node_id":"MDQ6VXNlcjE3NTM0ODA0","avatar_url":"https://avatars.githubusercontent.com/u/17534804?v=4","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","html_url":"https://github.com/shaun-seek","followers_url":"https://api.github.com/users/shaun-seek/followers","following_url":"https://api.github.com/users/shaun-seek/following{/other_user}","gists_url":"https://api.github.com/users/shaun-seek/gists{/gist_id}","starred_url":"https://api.github.com/users/shaun-seek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shaun-seek/subscriptions","organizations_url":"https://api.github.com/users/shaun-seek/orgs","repos_url":"https://api.github.com/users/shaun-seek/repos","events_url":"https://api.github.com/users/shaun-seek/events{/privacy}","received_events_url":"https://api.github.com/users/shaun-seek/received_events","type":"User","site_admin":false},"body":null,"commit_id":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","submitted_at":"2024-02-25T23:12:59Z","state":"commented","html_url":"https://github.com/seek-oss/seek-stackable/pull/16#pullrequestreview-1899773880","pull_request_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","author_association":"COLLABORATOR","_links":{"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16#pullrequestreview-1899773880"},"pull_request":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"}}},"pull_request":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","id":1733834560,"node_id":"PR_kwDOA_s7Nc5nWDdA","html_url":"https://github.com/seek-oss/seek-stackable/pull/16","diff_url":"https://github.com/seek-oss/seek-stackable/pull/16.diff","patch_url":"https://github.com/seek-oss/seek-stackable/pull/16.patch","issue_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16","number":16,"state":"open","locked":false,"title":"Add .fill distribution option to HStack","user":{"login":"shafiqurjelani","id":56019484,"node_id":"MDQ6VXNlcjU2MDE5NDg0","avatar_url":"https://avatars.githubusercontent.com/u/56019484?v=4","gravatar_id":"","url":"https://api.github.com/users/shafiqurjelani","html_url":"https://github.com/shafiqurjelani","followers_url":"https://api.github.com/users/shafiqurjelani/followers","following_url":"https://api.github.com/users/shafiqurjelani/following{/other_user}","gists_url":"https://api.github.com/users/shafiqurjelani/gists{/gist_id}","starred_url":"https://api.github.com/users/shafiqurjelani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shafiqurjelani/subscriptions","organizations_url":"https://api.github.com/users/shafiqurjelani/orgs","repos_url":"https://api.github.com/users/shafiqurjelani/repos","events_url":"https://api.github.com/users/shafiqurjelani/events{/privacy}","received_events_url":"https://api.github.com/users/shafiqurjelani/received_events","type":"User","site_admin":false},"body":"Adding a new distribution option called `fill` in the `HStack` to enable filling overall frames width with the item intrinsicContentSize width without the need for us to give a `fixed` width each time for a `Stack/StackableItem`.\r\n\r\n| existing `.fillEqually` | new `.fill` |\r\n| --- | --- |\r\n| | |\r\n\r\nFor example the above can be recreated with the following example.\r\n\r\n``` \r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n icon,\r\n label,\r\n label2\r\n ]\r\n)\r\n```\r\nBefore `.fill` option being introduced the above code will results in similar to the first picture in the table above. Now the `.fill` distribution option takes the intrinsicContentSize width of an item and set that as the width it need to satisfy on the frames we lay out.\r\n\r\n## Note\r\nFor `.fill` distribution option, when an item cant fit in the `HStack` the item will be dropped off from the view.\r\n\r\nExample :-\r\n```\r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n Icon(),\r\n Label(text: \"Be among the first to apply\"),\r\n Label(text: \"Label 2 something longer longer longer longer\"),\r\n Label(text: \"Label 3 something longer longer longer longer longer longer\"),\r\n ]\r\n)\r\n```\r\nThis will yield something like this with `Label 3...` being drop off from the view because it cant fit.\r\n\r\n\r\n\r\nThis behaviour is similar to what we get when we use the native `UIStackView`. \r\n\r\nExample:\r\n\r\n```\r\nlet view = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 400))\r\n\r\nlet hstack1 = hStack()\r\n\r\nview.addSubview(hstack1)\r\n\r\nhstack1.addArrangedSubview(\r\n label(\"title 1\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"Super long anoying title lets see\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"title 3\")\r\n)\r\n```\r\n\r\nThe native `UIStackView` will yield something like this with `title 3` being dropped out because it cant fit.\r\n\r\n\r\n","created_at":"2024-02-20T02:50:36Z","updated_at":"2024-02-25T23:12:59Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fc5d1c9f438d3e1951936d04eae1a80d01a85e50","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits","review_comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments","review_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/4ab734576617aed33d1f68b373ac7f6dad0d5be0","head":{"label":"seek-oss:tech/add-distribution-option-hstack","ref":"tech/add-distribution-option-hstack","sha":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-02-23T08:28:12Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":115,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"base":{"label":"seek-oss:master","ref":"master","sha":"b5e4ab039545375389bf7f5b443f4a26435c2ee1","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-02-23T08:28:12Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":115,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"},"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16"},"issue":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16"},"comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments"},"review_comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments"},"review_comment":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits"},"statuses":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/4ab734576617aed33d1f68b373ac7f6dad0d5be0"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-02-25T23:12:59Z","org":{"id":22927121,"login":"seek-oss","gravatar_id":"","url":"https://api.github.com/orgs/seek-oss","avatar_url":"https://avatars.githubusercontent.com/u/22927121?"}},{"id":"35990889643","type":"PullRequestReviewCommentEvent","actor":{"id":17534804,"login":"shaun-seek","display_login":"shaun-seek","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","avatar_url":"https://avatars.githubusercontent.com/u/17534804?"},"repo":{"id":66796341,"name":"seek-oss/seek-stackable","url":"https://api.github.com/repos/seek-oss/seek-stackable"},"payload":{"action":"created","comment":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments/1501919338","pull_request_review_id":1899773880,"id":1501919338,"node_id":"PRRC_kwDOA_s7Nc5ZhXhq","diff_hunk":"@@ -82,6 +106,109 @@ open class HStack: Stack {\n \n // MARK: helpers\n \n+ private func getWidth(\n+ for stackable: Stackable,\n+ width: CGFloat,\n+ currentX: Double,\n+ frames: [CGRect]\n+ ) -> CGFloat {\n+ switch distribution {\n+ case .fill:\n+ getWidthForDistributionFill(\n+ for: stackable,\n+ width: width,\n+ currentX: currentX,\n+ frames: frames\n+ )\n+ case .fillEqually:\n+ getWidthForDistributionFillEqually(\n+ for: stackable,\n+ width: width\n+ )\n+ }\n+ }\n+\n+ private func getWidthForDistributionFill(\n+ for stackable: Stackable,\n+ width: CGFloat,\n+ currentX: Double,\n+ frames: [CGRect]\n+ ) -> CGFloat {\n+ let existingItemXOffsetInCommonStack = if let firstFrame = frames.first {\n+ firstFrame.origin.x\n+ } else {\n+ CGFloat(0)\n+ }\n+\n+ // If we have no frames we want to treat the current\n+ // x offset as being 0 so our calculations work when\n+ // an item is nested in a stack and when it is not\n+ //\n+ // currentX is the calculation passed in that contains\n+ // the width + any spacing that been configured\n+ let currentXOffset = if frames.isEmpty {\n+ CGFloat(0)\n+ } else {\n+ CGFloat(currentX)\n+ }\n+\n+ // Calculate the relative X of the item positioned within the given width\n+ let relativeXOffsetInStack = currentXOffset - existingItemXOffsetInCommonStack\n+\n+ if let fixedSizeStackable = stackable as? FixedSizeStackable {\n+ let itemWidth = min(\n+ fixedSizeStackable.size.width,\n+ max(width - relativeXOffsetInStack, 0)\n+ )\n+\n+ #if DEBUG\n+ if itemWidth == 0 {\n+ print(\"\\(fixedSizeStackable) - is dropped from layout as it doesn't fit!\")\n+ }\n+ #endif\n+\n+ return itemWidth\n+ } else if let stack = stackable as? Stack {\n+ if let fixedSizeStackWidth = stack.width {\n+ return fixedSizeStackWidth\n+ } else {\n+ return width - currentX\n+ }\n+ }\n+ else if let item = stackable as? StackableItem {\n+ let itemWidth = min(\n+ item.intrinsicContentSize.width,\n+ max(width - relativeXOffsetInStack, 0)\n+ )\n+\n+ #if DEBUG\n+ if itemWidth == 0 {\n+ print(\"\\(item) - is dropped from layout as it doesn't fit!\")","path":"Sources/HStack.swift","commit_id":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","original_commit_id":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","user":{"login":"shaun-seek","id":17534804,"node_id":"MDQ6VXNlcjE3NTM0ODA0","avatar_url":"https://avatars.githubusercontent.com/u/17534804?v=4","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","html_url":"https://github.com/shaun-seek","followers_url":"https://api.github.com/users/shaun-seek/followers","following_url":"https://api.github.com/users/shaun-seek/following{/other_user}","gists_url":"https://api.github.com/users/shaun-seek/gists{/gist_id}","starred_url":"https://api.github.com/users/shaun-seek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shaun-seek/subscriptions","organizations_url":"https://api.github.com/users/shaun-seek/orgs","repos_url":"https://api.github.com/users/shaun-seek/repos","events_url":"https://api.github.com/users/shaun-seek/events{/privacy}","received_events_url":"https://api.github.com/users/shaun-seek/received_events","type":"User","site_admin":false},"body":"@ronnychan-seek Would be good to get your thoughts on this. We deliberated on an assert etc but just like with the UIKit stackview it just fails silently. We figured a print to console only in DEBUG builds is useful for a dev and wont pollute release builds. Happy to remove if you see no value.","created_at":"2024-02-25T23:12:59Z","updated_at":"2024-02-25T23:12:59Z","html_url":"https://github.com/seek-oss/seek-stackable/pull/16#discussion_r1501919338","pull_request_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments/1501919338"},"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16#discussion_r1501919338"},"pull_request":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"}},"reactions":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments/1501919338/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":186,"original_line":186,"side":"RIGHT","in_reply_to_id":1500345463,"original_position":191,"position":191,"subject_type":"line"},"pull_request":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","id":1733834560,"node_id":"PR_kwDOA_s7Nc5nWDdA","html_url":"https://github.com/seek-oss/seek-stackable/pull/16","diff_url":"https://github.com/seek-oss/seek-stackable/pull/16.diff","patch_url":"https://github.com/seek-oss/seek-stackable/pull/16.patch","issue_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16","number":16,"state":"open","locked":false,"title":"Add .fill distribution option to HStack","user":{"login":"shafiqurjelani","id":56019484,"node_id":"MDQ6VXNlcjU2MDE5NDg0","avatar_url":"https://avatars.githubusercontent.com/u/56019484?v=4","gravatar_id":"","url":"https://api.github.com/users/shafiqurjelani","html_url":"https://github.com/shafiqurjelani","followers_url":"https://api.github.com/users/shafiqurjelani/followers","following_url":"https://api.github.com/users/shafiqurjelani/following{/other_user}","gists_url":"https://api.github.com/users/shafiqurjelani/gists{/gist_id}","starred_url":"https://api.github.com/users/shafiqurjelani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shafiqurjelani/subscriptions","organizations_url":"https://api.github.com/users/shafiqurjelani/orgs","repos_url":"https://api.github.com/users/shafiqurjelani/repos","events_url":"https://api.github.com/users/shafiqurjelani/events{/privacy}","received_events_url":"https://api.github.com/users/shafiqurjelani/received_events","type":"User","site_admin":false},"body":"Adding a new distribution option called `fill` in the `HStack` to enable filling overall frames width with the item intrinsicContentSize width without the need for us to give a `fixed` width each time for a `Stack/StackableItem`.\r\n\r\n| existing `.fillEqually` | new `.fill` |\r\n| --- | --- |\r\n| | |\r\n\r\nFor example the above can be recreated with the following example.\r\n\r\n``` \r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n icon,\r\n label,\r\n label2\r\n ]\r\n)\r\n```\r\nBefore `.fill` option being introduced the above code will results in similar to the first picture in the table above. Now the `.fill` distribution option takes the intrinsicContentSize width of an item and set that as the width it need to satisfy on the frames we lay out.\r\n\r\n## Note\r\nFor `.fill` distribution option, when an item cant fit in the `HStack` the item will be dropped off from the view.\r\n\r\nExample :-\r\n```\r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n Icon(),\r\n Label(text: \"Be among the first to apply\"),\r\n Label(text: \"Label 2 something longer longer longer longer\"),\r\n Label(text: \"Label 3 something longer longer longer longer longer longer\"),\r\n ]\r\n)\r\n```\r\nThis will yield something like this with `Label 3...` being drop off from the view because it cant fit.\r\n\r\n\r\n\r\nThis behaviour is similar to what we get when we use the native `UIStackView`. \r\n\r\nExample:\r\n\r\n```\r\nlet view = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 400))\r\n\r\nlet hstack1 = hStack()\r\n\r\nview.addSubview(hstack1)\r\n\r\nhstack1.addArrangedSubview(\r\n label(\"title 1\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"Super long anoying title lets see\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"title 3\")\r\n)\r\n```\r\n\r\nThe native `UIStackView` will yield something like this with `title 3` being dropped out because it cant fit.\r\n\r\n\r\n","created_at":"2024-02-20T02:50:36Z","updated_at":"2024-02-25T23:12:59Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fc5d1c9f438d3e1951936d04eae1a80d01a85e50","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits","review_comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments","review_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/4ab734576617aed33d1f68b373ac7f6dad0d5be0","head":{"label":"seek-oss:tech/add-distribution-option-hstack","ref":"tech/add-distribution-option-hstack","sha":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-02-23T08:28:12Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":115,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"base":{"label":"seek-oss:master","ref":"master","sha":"b5e4ab039545375389bf7f5b443f4a26435c2ee1","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-02-23T08:28:12Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":115,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"},"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16"},"issue":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16"},"comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments"},"review_comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments"},"review_comment":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits"},"statuses":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/4ab734576617aed33d1f68b373ac7f6dad0d5be0"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-02-25T23:12:59Z","org":{"id":22927121,"login":"seek-oss","gravatar_id":"","url":"https://api.github.com/orgs/seek-oss","avatar_url":"https://avatars.githubusercontent.com/u/22927121?"}},{"id":"35990820841","type":"PullRequestReviewCommentEvent","actor":{"id":17534804,"login":"shaun-seek","display_login":"shaun-seek","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","avatar_url":"https://avatars.githubusercontent.com/u/17534804?"},"repo":{"id":66796341,"name":"seek-oss/seek-stackable","url":"https://api.github.com/repos/seek-oss/seek-stackable"},"payload":{"action":"created","comment":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments/1501918108","pull_request_review_id":1899772406,"id":1501918108,"node_id":"PRRC_kwDOA_s7Nc5ZhXOc","diff_hunk":"@@ -1,174 +1,764 @@\n // Copyright © 2016 SEEK Limited. All rights reserved.\n //\n \n-import Foundation\n import XCTest\n+\n @testable import Stackable\n \n-class HStackTests: XCTestCase {\n- func test_framesForLayout_should_return_spaced_frames() {\n- let spacing: CGFloat = 2\n- let view1 = UIView()\n- let size1 = CGSize(width: 50, height: 10)\n- let view2 = UIView()\n- let size2 = CGSize(width: 55, height: 11)\n- let view3 = UIView()\n- let size3 = CGSize(width: 60, height: 12)\n- \n- let stack = HStack(spacing: spacing, thingsToStack: [\n- view1.fixed(size: size1),\n- view2.fixed(size: size2),\n- view3.fixed(size: size3)\n- ])\n+final class HStackTests: XCTestCase {\n+ func test_init_should_set_default_properties() {\n+ let stack = HStack(\n+ thingsToStack: []\n+ )\n+ \n+ XCTAssertEqual(\n+ stack.spacing,\n+ 0.0\n+ )\n+ XCTAssertEqual(\n+ stack.distribution,\n+ .fillEqually\n+ )\n+ XCTAssertEqual(\n+ stack.layoutMargins,\n+ .zero\n+ )\n+ XCTAssertEqual(\n+ stack.thingsToStack.count,\n+ 0\n+ )\n+ XCTAssertNil(\n+ stack.width\n+ )\n+ }\n+ \n+ func test_init_should_set_properties() {\n+ let stack = HStack(\n+ spacing: 8,\n+ distribution: .fill,\n+ layoutMargins: .init(\n+ top: 10,\n+ left: 10,\n+ bottom: 10,\n+ right: 10\n+ ),\n+ thingsToStack: [\n+ UILabel()\n+ ],\n+ width: 100\n+ )\n+ \n+ XCTAssertEqual(\n+ stack.spacing,\n+ 8\n+ )\n+ XCTAssertEqual(\n+ stack.distribution,\n+ .fill\n+ )\n+ XCTAssertEqual(\n+ stack.layoutMargins,\n+ .init(\n+ top: 10,\n+ left: 10,\n+ bottom: 10,\n+ right: 10\n+ )\n+ )\n+ XCTAssertEqual(\n+ stack.width,\n+ 100\n+ )\n+ XCTAssertEqual(\n+ stack.thingsToStack.count,\n+ 1\n+ )\n+ }\n+ \n+ func test_convenience_init_should_set_properties() {\n+ let stack = HStack(\n+ spacing: 8,\n+ distribution: .fill,\n+ layoutMargins: .init(\n+ top: 10,\n+ left: 10,\n+ bottom: 10,\n+ right: 10\n+ ),\n+ width: 100\n+ ) {\n+ [\n+ UILabel()\n+ ]\n+ }\n+ \n+ XCTAssertEqual(\n+ stack.spacing,\n+ 8\n+ )\n+ XCTAssertEqual(\n+ stack.distribution,\n+ .fill\n+ )\n+ XCTAssertEqual(\n+ stack.layoutMargins,\n+ .init(\n+ top: 10,\n+ left: 10,\n+ bottom: 10,\n+ right: 10\n+ )\n+ )\n+ XCTAssertEqual(\n+ stack.width,\n+ 100\n+ )\n+ XCTAssertEqual(\n+ stack.thingsToStack.count,\n+ 1\n+ )\n+ }\n+ \n+ func test_framesForLayout_should_return_expected_frames() {\n+ let stack = HStack(\n+ spacing: 2,\n+ thingsToStack: [\n+ UIView().fixed(\n+ size: CGSize(\n+ width: 50,\n+ height: 10\n+ )\n+ ),\n+ UIView().fixed(\n+ size: CGSize(\n+ width: 55,\n+ height: 11\n+ )\n+ ),\n+ UIView().fixed(\n+ size: CGSize(\n+ width: 60,\n+ height: 12\n+ )\n+ )\n+ ]\n+ )\n \n let frames = stack.framesForLayout(200)\n- XCTAssertEqual(frames.count, 3)\n- // view1\n- XCTAssertEqual(frames[0].origin.x, 0)\n- XCTAssertEqual(frames[0].origin.y, 0)\n- XCTAssertEqual(frames[0].size.width, size1.width)\n- XCTAssertEqual(frames[0].size.height, size1.height)\n- // view2\n- XCTAssertEqual(frames[1].origin.x, size1.width + spacing)\n- XCTAssertEqual(frames[1].origin.y, 0)\n- XCTAssertEqual(frames[1].size.width, size2.width)\n- XCTAssertEqual(frames[1].size.height, size2.height)\n- // view3\n- XCTAssertEqual(frames[2].origin.x, size1.width + spacing + size2.width + spacing)\n- XCTAssertEqual(frames[2].origin.y, 0)\n- XCTAssertEqual(frames[2].size.width, size3.width)\n- XCTAssertEqual(frames[2].size.height, size3.height)\n+ \n+ XCTAssertEqual(\n+ frames,\n+ [\n+ .init(\n+ origin: .zero,\n+ size: .init(\n+ width: 50,\n+ height: 10\n+ )\n+ ),\n+ .init(\n+ origin: .init(\n+ x: 52,\n+ y: 0\n+ ),\n+ size: .init(\n+ width: 55,\n+ height: 11\n+ )\n+ ),\n+ .init(\n+ origin: .init(\n+ x: 109,\n+ y: 0\n+ ),\n+ size: .init(\n+ width: 60,\n+ height: 12\n+ )\n+ )\n+ \n+ ]\n+ )\n }\n \n func test_framesForLayout_should_return_frames_with_margins() {\n- let topMargin: CGFloat = 10\n- let leftMargin: CGFloat = 8\n- let bottomMargin: CGFloat = 10\n- let rightMargin: CGFloat = 8\n-\n- let spacing: CGFloat = 2\n- let view1 = UIView()\n- let size1 = CGSize(width: 50, height: 10)\n- let view2 = UIView()\n- let size2 = CGSize(width: 55, height: 11)\n- \n- let stack = HStack(spacing: spacing, layoutMargins: UIEdgeInsets(top: topMargin, left: leftMargin, bottom: bottomMargin, right: rightMargin), thingsToStack: [\n- view1.fixed(size: size1),\n- view2.fixed(size: size2)\n- ])\n+ let stack = HStack(\n+ spacing: 2,\n+ layoutMargins: .init(\n+ top: 10,\n+ left: 8,\n+ bottom: 10,\n+ right: 8\n+ ),\n+ thingsToStack: [\n+ UIView().fixed(\n+ size: CGSize(\n+ width: 50,\n+ height: 10\n+ )\n+ ),\n+ UIView().fixed(\n+ size: CGSize(\n+ width: 55,\n+ height: 11\n+ )\n+ )\n+ ]\n+ )\n \n let frames = stack.framesForLayout(200)\n- XCTAssertEqual(frames.count, 2)\n- // view1\n- XCTAssertEqual(frames[0].origin.x, 0)\n- XCTAssertEqual(frames[0].origin.y, 0) // TODO: HStack is currently not respecting margins\n- XCTAssertEqual(frames[0].size.width, size1.width)\n- XCTAssertEqual(frames[0].size.height, size1.height)\n- // view2\n- XCTAssertEqual(frames[1].origin.x, size1.width + spacing)\n- XCTAssertEqual(frames[1].origin.y, 0)\n- XCTAssertEqual(frames[1].size.width, size2.width)\n- XCTAssertEqual(frames[1].size.height, size2.height)\n+ \n+ XCTAssertEqual(\n+ frames,\n+ [\n+ .init(\n+ origin: .zero,\n+ size: .init(\n+ width: 50,\n+ height: 10\n+ )\n+ ),\n+ .init(\n+ origin: .init(\n+ x: 52,\n+ y: 0 // TODO: HStack is currently not respecting margins\n+ ),\n+ size: .init(\n+ width: 55,\n+ height: 11\n+ )\n+ )\n+ ]\n+ )\n }\n \n func test_framesForLayout_should_return_frames_for_nested_vstack() {\n- let spacing: CGFloat = 2\n- let spacing2: CGFloat = 1\n- let view1 = UIView()\n- let size1 = CGSize(width: 50, height: 10)\n- let view2 = UIView()\n- let size2 = CGSize(width: 55, height: 11)\n- let view3 = UIView()\n- let size3 = CGSize(width: 60, height: 12)\n- \n- let stack = HStack(spacing: spacing, thingsToStack: [\n- VStack(spacing: spacing2, thingsToStack: [\n- view1.fixed(size: size1),\n- view2.fixed(size: size2)\n- ]),\n- view3.fixed(size: size3)\n- ])\n+ let stack = HStack(\n+ spacing: 2,\n+ thingsToStack: [\n+ VStack(\n+ spacing: 1,\n+ thingsToStack: [\n+ UIView().fixed(\n+ size: .init(\n+ width: 50,\n+ height: 10\n+ )\n+ ),\n+ UIView().fixed(\n+ size: .init(\n+ width: 55,\n+ height: 11\n+ )\n+ )\n+ ]\n+ ),\n+ UIView().fixed(\n+ size: .init(\n+ width: 60,\n+ height: 12\n+ )\n+ )\n+ ]\n+ )\n \n let frames = stack.framesForLayout(200)\n- XCTAssertEqual(frames.count, 3)\n- // view1\n- XCTAssertEqual(frames[0].origin.x, 0)\n- XCTAssertEqual(frames[0].origin.y, 0)\n- XCTAssertEqual(frames[0].size.width, 50)\n- XCTAssertEqual(frames[0].size.height, size1.height)\n- // view2\n- XCTAssertEqual(frames[1].origin.x, 0)\n- XCTAssertEqual(frames[1].origin.y, size1.height + spacing2)\n- XCTAssertEqual(frames[1].size.width, 55)\n- XCTAssertEqual(frames[1].size.height, size2.height)\n- // view3\n- XCTAssertEqual(frames[2].origin.x, 200 - size3.width)\n- XCTAssertEqual(frames[2].origin.y, 0)\n- XCTAssertEqual(frames[2].size.width, size3.width)\n- XCTAssertEqual(frames[2].size.height, size3.height)\n+\n+ XCTAssertEqual(\n+ frames,\n+ [\n+ .init(\n+ origin: .zero,\n+ size: .init(\n+ width: 50,\n+ height: 10\n+ )\n+ ),\n+ .init(\n+ origin: .init(\n+ x: 0,\n+ y: 11\n+ ),\n+ size: .init(\n+ width: 55,\n+ height: 11\n+ )\n+ ),\n+ .init(\n+ origin: .init(\n+ x: 140,\n+ y: 0\n+ ),\n+ size: .init(\n+ width: 60,\n+ height: 12\n+ )\n+ )\n+ ]\n+ )\n }\n \n func test_framesForLayout_should_return_frames_for_nested_vstack_with_fixed_width() {\n- let spacing: CGFloat = 2\n- let spacing2: CGFloat = 1\n- let view1 = UIView()\n- let size1 = CGSize(width: 100, height: 10)\n- let view2 = UIView()\n- let size2 = CGSize(width: 100, height: 11)\n- let view3 = UIView()\n- let size3 = CGSize(width: 60, height: 12)\n- let fixedVStackWidth: CGFloat = 50\n- \n- let stack = HStack(spacing: spacing, thingsToStack: [\n- VStack(spacing: spacing2, thingsToStack: [\n- view1.fixed(size: size1),\n- view2.fixed(size: size2)\n- ], width: fixedVStackWidth),\n- view3.fixed(size: size3)\n- ])\n+ let stack = HStack(\n+ spacing: 2,\n+ thingsToStack: [\n+ VStack(\n+ spacing: 1,\n+ thingsToStack: [\n+ UIView().fixed(\n+ size: .init(\n+ width: 100,\n+ height: 10\n+ )\n+ ),\n+ UIView().fixed(\n+ size: .init(\n+ width: 100,\n+ height: 11\n+ )\n+ )\n+ ],\n+ width: 50\n+ ),\n+ UIView().fixed(\n+ size: .init(\n+ width: 60,\n+ height: 12\n+ )\n+ )\n+ ]\n+ )\n \n let frames = stack.framesForLayout(200)\n- XCTAssertEqual(frames.count, 3)\n- // view1\n- XCTAssertEqual(frames[0].origin.x, 0)\n- XCTAssertEqual(frames[0].origin.y, 0)\n- XCTAssertEqual(frames[0].size.width, fixedVStackWidth)\n- XCTAssertEqual(frames[0].size.height, size1.height)\n- // view2\n- XCTAssertEqual(frames[1].origin.x, 0)\n- XCTAssertEqual(frames[1].origin.y, size1.height + spacing2)\n- XCTAssertEqual(frames[1].size.width, fixedVStackWidth)\n- XCTAssertEqual(frames[1].size.height, size2.height)\n- // view3\n- XCTAssertEqual(frames[2].origin.x, fixedVStackWidth + spacing)\n- XCTAssertEqual(frames[2].origin.y, 0)\n- XCTAssertEqual(frames[2].size.width, size3.width)\n- XCTAssertEqual(frames[2].size.height, size3.height)\n+ \n+ XCTAssertEqual(\n+ frames,\n+ [\n+ .init(\n+ origin: .zero,\n+ size: .init(\n+ width: 50,\n+ height: 10\n+ )\n+ ),\n+ .init(\n+ origin: .init(\n+ x: 0,\n+ y: 11\n+ ),\n+ size: .init(\n+ width: 50,\n+ height: 11\n+ )\n+ ),\n+ .init(\n+ origin: .init(\n+ x: 52,\n+ y: 0\n+ ),\n+ size: .init(\n+ width: 60,\n+ height: 12\n+ )\n+ )\n+ ]\n+ )\n }\n \n- func test_convenience_init_with_thingsToStack_closure() {\n- let layoutMargins = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)\n- let spacing: CGFloat = 2\n- let view1 = UILabel()\n- let view2 = UILabel()\n+ func test_framesForLayout_when_distribution_is_fill_should_return_expected_frames() {","path":"Tests/HStackTests.swift","commit_id":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","original_commit_id":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","user":{"login":"shaun-seek","id":17534804,"node_id":"MDQ6VXNlcjE3NTM0ODA0","avatar_url":"https://avatars.githubusercontent.com/u/17534804?v=4","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","html_url":"https://github.com/shaun-seek","followers_url":"https://api.github.com/users/shaun-seek/followers","following_url":"https://api.github.com/users/shaun-seek/following{/other_user}","gists_url":"https://api.github.com/users/shaun-seek/gists{/gist_id}","starred_url":"https://api.github.com/users/shaun-seek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shaun-seek/subscriptions","organizations_url":"https://api.github.com/users/shaun-seek/orgs","repos_url":"https://api.github.com/users/shaun-seek/repos","events_url":"https://api.github.com/users/shaun-seek/events{/privacy}","received_events_url":"https://api.github.com/users/shaun-seek/received_events","type":"User","site_admin":false},"body":"This is a test for when subviews exceed the width in the hstack, could be worth mentioning in the test case because the test names help us scan expected behavior.","created_at":"2024-02-25T23:06:31Z","updated_at":"2024-02-25T23:06:32Z","html_url":"https://github.com/seek-oss/seek-stackable/pull/16#discussion_r1501918108","pull_request_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments/1501918108"},"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16#discussion_r1501918108"},"pull_request":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"}},"reactions":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments/1501918108/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":368,"original_line":368,"side":"RIGHT","original_position":496,"position":496,"subject_type":"line"},"pull_request":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","id":1733834560,"node_id":"PR_kwDOA_s7Nc5nWDdA","html_url":"https://github.com/seek-oss/seek-stackable/pull/16","diff_url":"https://github.com/seek-oss/seek-stackable/pull/16.diff","patch_url":"https://github.com/seek-oss/seek-stackable/pull/16.patch","issue_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16","number":16,"state":"open","locked":false,"title":"Add .fill distribution option to HStack","user":{"login":"shafiqurjelani","id":56019484,"node_id":"MDQ6VXNlcjU2MDE5NDg0","avatar_url":"https://avatars.githubusercontent.com/u/56019484?v=4","gravatar_id":"","url":"https://api.github.com/users/shafiqurjelani","html_url":"https://github.com/shafiqurjelani","followers_url":"https://api.github.com/users/shafiqurjelani/followers","following_url":"https://api.github.com/users/shafiqurjelani/following{/other_user}","gists_url":"https://api.github.com/users/shafiqurjelani/gists{/gist_id}","starred_url":"https://api.github.com/users/shafiqurjelani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shafiqurjelani/subscriptions","organizations_url":"https://api.github.com/users/shafiqurjelani/orgs","repos_url":"https://api.github.com/users/shafiqurjelani/repos","events_url":"https://api.github.com/users/shafiqurjelani/events{/privacy}","received_events_url":"https://api.github.com/users/shafiqurjelani/received_events","type":"User","site_admin":false},"body":"Adding a new distribution option called `fill` in the `HStack` to enable filling overall frames width with the item intrinsicContentSize width without the need for us to give a `fixed` width each time for a `Stack/StackableItem`.\r\n\r\n| existing `.fillEqually` | new `.fill` |\r\n| --- | --- |\r\n| | |\r\n\r\nFor example the above can be recreated with the following example.\r\n\r\n``` \r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n icon,\r\n label,\r\n label2\r\n ]\r\n)\r\n```\r\nBefore `.fill` option being introduced the above code will results in similar to the first picture in the table above. Now the `.fill` distribution option takes the intrinsicContentSize width of an item and set that as the width it need to satisfy on the frames we lay out.\r\n\r\n## Note\r\nFor `.fill` distribution option, when an item cant fit in the `HStack` the item will be dropped off from the view.\r\n\r\nExample :-\r\n```\r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n Icon(),\r\n Label(text: \"Be among the first to apply\"),\r\n Label(text: \"Label 2 something longer longer longer longer\"),\r\n Label(text: \"Label 3 something longer longer longer longer longer longer\"),\r\n ]\r\n)\r\n```\r\nThis will yield something like this with `Label 3...` being drop off from the view because it cant fit.\r\n\r\n\r\n\r\nThis behaviour is similar to what we get when we use the native `UIStackView`. \r\n\r\nExample:\r\n\r\n```\r\nlet view = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 400))\r\n\r\nlet hstack1 = hStack()\r\n\r\nview.addSubview(hstack1)\r\n\r\nhstack1.addArrangedSubview(\r\n label(\"title 1\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"Super long anoying title lets see\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"title 3\")\r\n)\r\n```\r\n\r\nThe native `UIStackView` will yield something like this with `title 3` being dropped out because it cant fit.\r\n\r\n\r\n","created_at":"2024-02-20T02:50:36Z","updated_at":"2024-02-25T23:06:32Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fc5d1c9f438d3e1951936d04eae1a80d01a85e50","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits","review_comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments","review_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/4ab734576617aed33d1f68b373ac7f6dad0d5be0","head":{"label":"seek-oss:tech/add-distribution-option-hstack","ref":"tech/add-distribution-option-hstack","sha":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-02-23T08:28:12Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":115,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"base":{"label":"seek-oss:master","ref":"master","sha":"b5e4ab039545375389bf7f5b443f4a26435c2ee1","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-02-23T08:28:12Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":115,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"},"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16"},"issue":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16"},"comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments"},"review_comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments"},"review_comment":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits"},"statuses":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/4ab734576617aed33d1f68b373ac7f6dad0d5be0"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-02-25T23:06:31Z","org":{"id":22927121,"login":"seek-oss","gravatar_id":"","url":"https://api.github.com/orgs/seek-oss","avatar_url":"https://avatars.githubusercontent.com/u/22927121?"}},{"id":"35990820810","type":"PullRequestReviewEvent","actor":{"id":17534804,"login":"shaun-seek","display_login":"shaun-seek","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","avatar_url":"https://avatars.githubusercontent.com/u/17534804?"},"repo":{"id":66796341,"name":"seek-oss/seek-stackable","url":"https://api.github.com/repos/seek-oss/seek-stackable"},"payload":{"action":"created","review":{"id":1899772406,"node_id":"PRR_kwDOA_s7Nc5xPDn2","user":{"login":"shaun-seek","id":17534804,"node_id":"MDQ6VXNlcjE3NTM0ODA0","avatar_url":"https://avatars.githubusercontent.com/u/17534804?v=4","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","html_url":"https://github.com/shaun-seek","followers_url":"https://api.github.com/users/shaun-seek/followers","following_url":"https://api.github.com/users/shaun-seek/following{/other_user}","gists_url":"https://api.github.com/users/shaun-seek/gists{/gist_id}","starred_url":"https://api.github.com/users/shaun-seek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shaun-seek/subscriptions","organizations_url":"https://api.github.com/users/shaun-seek/orgs","repos_url":"https://api.github.com/users/shaun-seek/repos","events_url":"https://api.github.com/users/shaun-seek/events{/privacy}","received_events_url":"https://api.github.com/users/shaun-seek/received_events","type":"User","site_admin":false},"body":null,"commit_id":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","submitted_at":"2024-02-25T23:06:32Z","state":"commented","html_url":"https://github.com/seek-oss/seek-stackable/pull/16#pullrequestreview-1899772406","pull_request_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","author_association":"COLLABORATOR","_links":{"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16#pullrequestreview-1899772406"},"pull_request":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"}}},"pull_request":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","id":1733834560,"node_id":"PR_kwDOA_s7Nc5nWDdA","html_url":"https://github.com/seek-oss/seek-stackable/pull/16","diff_url":"https://github.com/seek-oss/seek-stackable/pull/16.diff","patch_url":"https://github.com/seek-oss/seek-stackable/pull/16.patch","issue_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16","number":16,"state":"open","locked":false,"title":"Add .fill distribution option to HStack","user":{"login":"shafiqurjelani","id":56019484,"node_id":"MDQ6VXNlcjU2MDE5NDg0","avatar_url":"https://avatars.githubusercontent.com/u/56019484?v=4","gravatar_id":"","url":"https://api.github.com/users/shafiqurjelani","html_url":"https://github.com/shafiqurjelani","followers_url":"https://api.github.com/users/shafiqurjelani/followers","following_url":"https://api.github.com/users/shafiqurjelani/following{/other_user}","gists_url":"https://api.github.com/users/shafiqurjelani/gists{/gist_id}","starred_url":"https://api.github.com/users/shafiqurjelani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shafiqurjelani/subscriptions","organizations_url":"https://api.github.com/users/shafiqurjelani/orgs","repos_url":"https://api.github.com/users/shafiqurjelani/repos","events_url":"https://api.github.com/users/shafiqurjelani/events{/privacy}","received_events_url":"https://api.github.com/users/shafiqurjelani/received_events","type":"User","site_admin":false},"body":"Adding a new distribution option called `fill` in the `HStack` to enable filling overall frames width with the item intrinsicContentSize width without the need for us to give a `fixed` width each time for a `Stack/StackableItem`.\r\n\r\n| existing `.fillEqually` | new `.fill` |\r\n| --- | --- |\r\n| | |\r\n\r\nFor example the above can be recreated with the following example.\r\n\r\n``` \r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n icon,\r\n label,\r\n label2\r\n ]\r\n)\r\n```\r\nBefore `.fill` option being introduced the above code will results in similar to the first picture in the table above. Now the `.fill` distribution option takes the intrinsicContentSize width of an item and set that as the width it need to satisfy on the frames we lay out.\r\n\r\n## Note\r\nFor `.fill` distribution option, when an item cant fit in the `HStack` the item will be dropped off from the view.\r\n\r\nExample :-\r\n```\r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n Icon(),\r\n Label(text: \"Be among the first to apply\"),\r\n Label(text: \"Label 2 something longer longer longer longer\"),\r\n Label(text: \"Label 3 something longer longer longer longer longer longer\"),\r\n ]\r\n)\r\n```\r\nThis will yield something like this with `Label 3...` being drop off from the view because it cant fit.\r\n\r\n\r\n\r\nThis behaviour is similar to what we get when we use the native `UIStackView`. \r\n\r\nExample:\r\n\r\n```\r\nlet view = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 400))\r\n\r\nlet hstack1 = hStack()\r\n\r\nview.addSubview(hstack1)\r\n\r\nhstack1.addArrangedSubview(\r\n label(\"title 1\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"Super long anoying title lets see\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"title 3\")\r\n)\r\n```\r\n\r\nThe native `UIStackView` will yield something like this with `title 3` being dropped out because it cant fit.\r\n\r\n\r\n","created_at":"2024-02-20T02:50:36Z","updated_at":"2024-02-25T23:06:32Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fc5d1c9f438d3e1951936d04eae1a80d01a85e50","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits","review_comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments","review_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/4ab734576617aed33d1f68b373ac7f6dad0d5be0","head":{"label":"seek-oss:tech/add-distribution-option-hstack","ref":"tech/add-distribution-option-hstack","sha":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-02-23T08:28:12Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":115,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"base":{"label":"seek-oss:master","ref":"master","sha":"b5e4ab039545375389bf7f5b443f4a26435c2ee1","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-02-23T08:28:12Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":115,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"},"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16"},"issue":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16"},"comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments"},"review_comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments"},"review_comment":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits"},"statuses":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/4ab734576617aed33d1f68b373ac7f6dad0d5be0"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-02-25T23:06:32Z","org":{"id":22927121,"login":"seek-oss","gravatar_id":"","url":"https://api.github.com/orgs/seek-oss","avatar_url":"https://avatars.githubusercontent.com/u/22927121?"}},{"id":"35990808945","type":"PullRequestReviewCommentEvent","actor":{"id":17534804,"login":"shaun-seek","display_login":"shaun-seek","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","avatar_url":"https://avatars.githubusercontent.com/u/17534804?"},"repo":{"id":66796341,"name":"seek-oss/seek-stackable","url":"https://api.github.com/repos/seek-oss/seek-stackable"},"payload":{"action":"created","comment":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments/1501917906","pull_request_review_id":1899772123,"id":1501917906,"node_id":"PRRC_kwDOA_s7Nc5ZhXLS","diff_hunk":"@@ -1,174 +1,764 @@\n // Copyright © 2016 SEEK Limited. All rights reserved.\n //\n \n-import Foundation\n import XCTest\n+\n @testable import Stackable\n \n-class HStackTests: XCTestCase {\n- func test_framesForLayout_should_return_spaced_frames() {\n- let spacing: CGFloat = 2\n- let view1 = UIView()\n- let size1 = CGSize(width: 50, height: 10)\n- let view2 = UIView()\n- let size2 = CGSize(width: 55, height: 11)\n- let view3 = UIView()\n- let size3 = CGSize(width: 60, height: 12)\n- \n- let stack = HStack(spacing: spacing, thingsToStack: [\n- view1.fixed(size: size1),\n- view2.fixed(size: size2),\n- view3.fixed(size: size3)\n- ])\n+final class HStackTests: XCTestCase {\n+ func test_init_should_set_default_properties() {\n+ let stack = HStack(\n+ thingsToStack: []\n+ )\n+ \n+ XCTAssertEqual(\n+ stack.spacing,\n+ 0.0\n+ )\n+ XCTAssertEqual(\n+ stack.distribution,\n+ .fillEqually\n+ )\n+ XCTAssertEqual(\n+ stack.layoutMargins,\n+ .zero\n+ )\n+ XCTAssertEqual(\n+ stack.thingsToStack.count,\n+ 0\n+ )\n+ XCTAssertNil(\n+ stack.width\n+ )\n+ }\n+ \n+ func test_init_should_set_properties() {\n+ let stack = HStack(\n+ spacing: 8,\n+ distribution: .fill,\n+ layoutMargins: .init(\n+ top: 10,\n+ left: 10,\n+ bottom: 10,\n+ right: 10\n+ ),\n+ thingsToStack: [\n+ UILabel()\n+ ],\n+ width: 100\n+ )\n+ \n+ XCTAssertEqual(\n+ stack.spacing,\n+ 8\n+ )\n+ XCTAssertEqual(\n+ stack.distribution,\n+ .fill\n+ )\n+ XCTAssertEqual(\n+ stack.layoutMargins,\n+ .init(\n+ top: 10,\n+ left: 10,\n+ bottom: 10,\n+ right: 10\n+ )\n+ )\n+ XCTAssertEqual(\n+ stack.width,\n+ 100\n+ )\n+ XCTAssertEqual(\n+ stack.thingsToStack.count,\n+ 1\n+ )\n+ }\n+ \n+ func test_convenience_init_should_set_properties() {\n+ let stack = HStack(\n+ spacing: 8,\n+ distribution: .fill,\n+ layoutMargins: .init(\n+ top: 10,\n+ left: 10,\n+ bottom: 10,\n+ right: 10\n+ ),\n+ width: 100\n+ ) {\n+ [\n+ UILabel()\n+ ]\n+ }\n+ \n+ XCTAssertEqual(\n+ stack.spacing,\n+ 8\n+ )\n+ XCTAssertEqual(\n+ stack.distribution,\n+ .fill\n+ )\n+ XCTAssertEqual(\n+ stack.layoutMargins,\n+ .init(\n+ top: 10,\n+ left: 10,\n+ bottom: 10,\n+ right: 10\n+ )\n+ )\n+ XCTAssertEqual(\n+ stack.width,\n+ 100\n+ )\n+ XCTAssertEqual(\n+ stack.thingsToStack.count,\n+ 1\n+ )\n+ }\n+ \n+ func test_framesForLayout_should_return_expected_frames() {","path":"Tests/HStackTests.swift","commit_id":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","original_commit_id":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","user":{"login":"shaun-seek","id":17534804,"node_id":"MDQ6VXNlcjE3NTM0ODA0","avatar_url":"https://avatars.githubusercontent.com/u/17534804?v=4","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","html_url":"https://github.com/shaun-seek","followers_url":"https://api.github.com/users/shaun-seek/followers","following_url":"https://api.github.com/users/shaun-seek/following{/other_user}","gists_url":"https://api.github.com/users/shaun-seek/gists{/gist_id}","starred_url":"https://api.github.com/users/shaun-seek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shaun-seek/subscriptions","organizations_url":"https://api.github.com/users/shaun-seek/orgs","repos_url":"https://api.github.com/users/shaun-seek/repos","events_url":"https://api.github.com/users/shaun-seek/events{/privacy}","received_events_url":"https://api.github.com/users/shaun-seek/received_events","type":"User","site_admin":false},"body":"Also worth including the distribution if these tests are all fillEqually","created_at":"2024-02-25T23:05:22Z","updated_at":"2024-02-25T23:05:22Z","html_url":"https://github.com/seek-oss/seek-stackable/pull/16#discussion_r1501917906","pull_request_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments/1501917906"},"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16#discussion_r1501917906"},"pull_request":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"}},"reactions":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments/1501917906/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":122,"original_line":122,"side":"RIGHT","in_reply_to_id":1501917763,"original_position":138,"position":138,"subject_type":"line"},"pull_request":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","id":1733834560,"node_id":"PR_kwDOA_s7Nc5nWDdA","html_url":"https://github.com/seek-oss/seek-stackable/pull/16","diff_url":"https://github.com/seek-oss/seek-stackable/pull/16.diff","patch_url":"https://github.com/seek-oss/seek-stackable/pull/16.patch","issue_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16","number":16,"state":"open","locked":false,"title":"Add .fill distribution option to HStack","user":{"login":"shafiqurjelani","id":56019484,"node_id":"MDQ6VXNlcjU2MDE5NDg0","avatar_url":"https://avatars.githubusercontent.com/u/56019484?v=4","gravatar_id":"","url":"https://api.github.com/users/shafiqurjelani","html_url":"https://github.com/shafiqurjelani","followers_url":"https://api.github.com/users/shafiqurjelani/followers","following_url":"https://api.github.com/users/shafiqurjelani/following{/other_user}","gists_url":"https://api.github.com/users/shafiqurjelani/gists{/gist_id}","starred_url":"https://api.github.com/users/shafiqurjelani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shafiqurjelani/subscriptions","organizations_url":"https://api.github.com/users/shafiqurjelani/orgs","repos_url":"https://api.github.com/users/shafiqurjelani/repos","events_url":"https://api.github.com/users/shafiqurjelani/events{/privacy}","received_events_url":"https://api.github.com/users/shafiqurjelani/received_events","type":"User","site_admin":false},"body":"Adding a new distribution option called `fill` in the `HStack` to enable filling overall frames width with the item intrinsicContentSize width without the need for us to give a `fixed` width each time for a `Stack/StackableItem`.\r\n\r\n| existing `.fillEqually` | new `.fill` |\r\n| --- | --- |\r\n| | |\r\n\r\nFor example the above can be recreated with the following example.\r\n\r\n``` \r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n icon,\r\n label,\r\n label2\r\n ]\r\n)\r\n```\r\nBefore `.fill` option being introduced the above code will results in similar to the first picture in the table above. Now the `.fill` distribution option takes the intrinsicContentSize width of an item and set that as the width it need to satisfy on the frames we lay out.\r\n\r\n## Note\r\nFor `.fill` distribution option, when an item cant fit in the `HStack` the item will be dropped off from the view.\r\n\r\nExample :-\r\n```\r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n Icon(),\r\n Label(text: \"Be among the first to apply\"),\r\n Label(text: \"Label 2 something longer longer longer longer\"),\r\n Label(text: \"Label 3 something longer longer longer longer longer longer\"),\r\n ]\r\n)\r\n```\r\nThis will yield something like this with `Label 3...` being drop off from the view because it cant fit.\r\n\r\n\r\n\r\nThis behaviour is similar to what we get when we use the native `UIStackView`. \r\n\r\nExample:\r\n\r\n```\r\nlet view = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 400))\r\n\r\nlet hstack1 = hStack()\r\n\r\nview.addSubview(hstack1)\r\n\r\nhstack1.addArrangedSubview(\r\n label(\"title 1\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"Super long anoying title lets see\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"title 3\")\r\n)\r\n```\r\n\r\nThe native `UIStackView` will yield something like this with `title 3` being dropped out because it cant fit.\r\n\r\n\r\n","created_at":"2024-02-20T02:50:36Z","updated_at":"2024-02-25T23:05:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fc5d1c9f438d3e1951936d04eae1a80d01a85e50","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits","review_comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments","review_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/4ab734576617aed33d1f68b373ac7f6dad0d5be0","head":{"label":"seek-oss:tech/add-distribution-option-hstack","ref":"tech/add-distribution-option-hstack","sha":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-02-23T08:28:12Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":115,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"base":{"label":"seek-oss:master","ref":"master","sha":"b5e4ab039545375389bf7f5b443f4a26435c2ee1","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-02-23T08:28:12Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":115,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"},"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16"},"issue":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16"},"comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments"},"review_comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments"},"review_comment":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits"},"statuses":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/4ab734576617aed33d1f68b373ac7f6dad0d5be0"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-02-25T23:05:22Z","org":{"id":22927121,"login":"seek-oss","gravatar_id":"","url":"https://api.github.com/orgs/seek-oss","avatar_url":"https://avatars.githubusercontent.com/u/22927121?"}},{"id":"35990808932","type":"PullRequestReviewEvent","actor":{"id":17534804,"login":"shaun-seek","display_login":"shaun-seek","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","avatar_url":"https://avatars.githubusercontent.com/u/17534804?"},"repo":{"id":66796341,"name":"seek-oss/seek-stackable","url":"https://api.github.com/repos/seek-oss/seek-stackable"},"payload":{"action":"created","review":{"id":1899772123,"node_id":"PRR_kwDOA_s7Nc5xPDjb","user":{"login":"shaun-seek","id":17534804,"node_id":"MDQ6VXNlcjE3NTM0ODA0","avatar_url":"https://avatars.githubusercontent.com/u/17534804?v=4","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","html_url":"https://github.com/shaun-seek","followers_url":"https://api.github.com/users/shaun-seek/followers","following_url":"https://api.github.com/users/shaun-seek/following{/other_user}","gists_url":"https://api.github.com/users/shaun-seek/gists{/gist_id}","starred_url":"https://api.github.com/users/shaun-seek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shaun-seek/subscriptions","organizations_url":"https://api.github.com/users/shaun-seek/orgs","repos_url":"https://api.github.com/users/shaun-seek/repos","events_url":"https://api.github.com/users/shaun-seek/events{/privacy}","received_events_url":"https://api.github.com/users/shaun-seek/received_events","type":"User","site_admin":false},"body":null,"commit_id":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","submitted_at":"2024-02-25T23:05:22Z","state":"commented","html_url":"https://github.com/seek-oss/seek-stackable/pull/16#pullrequestreview-1899772123","pull_request_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","author_association":"COLLABORATOR","_links":{"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16#pullrequestreview-1899772123"},"pull_request":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"}}},"pull_request":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","id":1733834560,"node_id":"PR_kwDOA_s7Nc5nWDdA","html_url":"https://github.com/seek-oss/seek-stackable/pull/16","diff_url":"https://github.com/seek-oss/seek-stackable/pull/16.diff","patch_url":"https://github.com/seek-oss/seek-stackable/pull/16.patch","issue_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16","number":16,"state":"open","locked":false,"title":"Add .fill distribution option to HStack","user":{"login":"shafiqurjelani","id":56019484,"node_id":"MDQ6VXNlcjU2MDE5NDg0","avatar_url":"https://avatars.githubusercontent.com/u/56019484?v=4","gravatar_id":"","url":"https://api.github.com/users/shafiqurjelani","html_url":"https://github.com/shafiqurjelani","followers_url":"https://api.github.com/users/shafiqurjelani/followers","following_url":"https://api.github.com/users/shafiqurjelani/following{/other_user}","gists_url":"https://api.github.com/users/shafiqurjelani/gists{/gist_id}","starred_url":"https://api.github.com/users/shafiqurjelani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shafiqurjelani/subscriptions","organizations_url":"https://api.github.com/users/shafiqurjelani/orgs","repos_url":"https://api.github.com/users/shafiqurjelani/repos","events_url":"https://api.github.com/users/shafiqurjelani/events{/privacy}","received_events_url":"https://api.github.com/users/shafiqurjelani/received_events","type":"User","site_admin":false},"body":"Adding a new distribution option called `fill` in the `HStack` to enable filling overall frames width with the item intrinsicContentSize width without the need for us to give a `fixed` width each time for a `Stack/StackableItem`.\r\n\r\n| existing `.fillEqually` | new `.fill` |\r\n| --- | --- |\r\n| | |\r\n\r\nFor example the above can be recreated with the following example.\r\n\r\n``` \r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n icon,\r\n label,\r\n label2\r\n ]\r\n)\r\n```\r\nBefore `.fill` option being introduced the above code will results in similar to the first picture in the table above. Now the `.fill` distribution option takes the intrinsicContentSize width of an item and set that as the width it need to satisfy on the frames we lay out.\r\n\r\n## Note\r\nFor `.fill` distribution option, when an item cant fit in the `HStack` the item will be dropped off from the view.\r\n\r\nExample :-\r\n```\r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n Icon(),\r\n Label(text: \"Be among the first to apply\"),\r\n Label(text: \"Label 2 something longer longer longer longer\"),\r\n Label(text: \"Label 3 something longer longer longer longer longer longer\"),\r\n ]\r\n)\r\n```\r\nThis will yield something like this with `Label 3...` being drop off from the view because it cant fit.\r\n\r\n\r\n\r\nThis behaviour is similar to what we get when we use the native `UIStackView`. \r\n\r\nExample:\r\n\r\n```\r\nlet view = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 400))\r\n\r\nlet hstack1 = hStack()\r\n\r\nview.addSubview(hstack1)\r\n\r\nhstack1.addArrangedSubview(\r\n label(\"title 1\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"Super long anoying title lets see\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"title 3\")\r\n)\r\n```\r\n\r\nThe native `UIStackView` will yield something like this with `title 3` being dropped out because it cant fit.\r\n\r\n\r\n","created_at":"2024-02-20T02:50:36Z","updated_at":"2024-02-25T23:05:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fc5d1c9f438d3e1951936d04eae1a80d01a85e50","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits","review_comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments","review_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/4ab734576617aed33d1f68b373ac7f6dad0d5be0","head":{"label":"seek-oss:tech/add-distribution-option-hstack","ref":"tech/add-distribution-option-hstack","sha":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-02-23T08:28:12Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":115,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"base":{"label":"seek-oss:master","ref":"master","sha":"b5e4ab039545375389bf7f5b443f4a26435c2ee1","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-02-23T08:28:12Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":115,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"},"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16"},"issue":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16"},"comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments"},"review_comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments"},"review_comment":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits"},"statuses":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/4ab734576617aed33d1f68b373ac7f6dad0d5be0"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-02-25T23:05:23Z","org":{"id":22927121,"login":"seek-oss","gravatar_id":"","url":"https://api.github.com/orgs/seek-oss","avatar_url":"https://avatars.githubusercontent.com/u/22927121?"}},{"id":"35990799989","type":"PullRequestReviewCommentEvent","actor":{"id":17534804,"login":"shaun-seek","display_login":"shaun-seek","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","avatar_url":"https://avatars.githubusercontent.com/u/17534804?"},"repo":{"id":66796341,"name":"seek-oss/seek-stackable","url":"https://api.github.com/repos/seek-oss/seek-stackable"},"payload":{"action":"created","comment":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments/1501917763","pull_request_review_id":1899771936,"id":1501917763,"node_id":"PRRC_kwDOA_s7Nc5ZhXJD","diff_hunk":"@@ -1,174 +1,764 @@\n // Copyright © 2016 SEEK Limited. All rights reserved.\n //\n \n-import Foundation\n import XCTest\n+\n @testable import Stackable\n \n-class HStackTests: XCTestCase {\n- func test_framesForLayout_should_return_spaced_frames() {\n- let spacing: CGFloat = 2\n- let view1 = UIView()\n- let size1 = CGSize(width: 50, height: 10)\n- let view2 = UIView()\n- let size2 = CGSize(width: 55, height: 11)\n- let view3 = UIView()\n- let size3 = CGSize(width: 60, height: 12)\n- \n- let stack = HStack(spacing: spacing, thingsToStack: [\n- view1.fixed(size: size1),\n- view2.fixed(size: size2),\n- view3.fixed(size: size3)\n- ])\n+final class HStackTests: XCTestCase {\n+ func test_init_should_set_default_properties() {\n+ let stack = HStack(\n+ thingsToStack: []\n+ )\n+ \n+ XCTAssertEqual(\n+ stack.spacing,\n+ 0.0\n+ )\n+ XCTAssertEqual(\n+ stack.distribution,\n+ .fillEqually\n+ )\n+ XCTAssertEqual(\n+ stack.layoutMargins,\n+ .zero\n+ )\n+ XCTAssertEqual(\n+ stack.thingsToStack.count,\n+ 0\n+ )\n+ XCTAssertNil(\n+ stack.width\n+ )\n+ }\n+ \n+ func test_init_should_set_properties() {\n+ let stack = HStack(\n+ spacing: 8,\n+ distribution: .fill,\n+ layoutMargins: .init(\n+ top: 10,\n+ left: 10,\n+ bottom: 10,\n+ right: 10\n+ ),\n+ thingsToStack: [\n+ UILabel()\n+ ],\n+ width: 100\n+ )\n+ \n+ XCTAssertEqual(\n+ stack.spacing,\n+ 8\n+ )\n+ XCTAssertEqual(\n+ stack.distribution,\n+ .fill\n+ )\n+ XCTAssertEqual(\n+ stack.layoutMargins,\n+ .init(\n+ top: 10,\n+ left: 10,\n+ bottom: 10,\n+ right: 10\n+ )\n+ )\n+ XCTAssertEqual(\n+ stack.width,\n+ 100\n+ )\n+ XCTAssertEqual(\n+ stack.thingsToStack.count,\n+ 1\n+ )\n+ }\n+ \n+ func test_convenience_init_should_set_properties() {\n+ let stack = HStack(\n+ spacing: 8,\n+ distribution: .fill,\n+ layoutMargins: .init(\n+ top: 10,\n+ left: 10,\n+ bottom: 10,\n+ right: 10\n+ ),\n+ width: 100\n+ ) {\n+ [\n+ UILabel()\n+ ]\n+ }\n+ \n+ XCTAssertEqual(\n+ stack.spacing,\n+ 8\n+ )\n+ XCTAssertEqual(\n+ stack.distribution,\n+ .fill\n+ )\n+ XCTAssertEqual(\n+ stack.layoutMargins,\n+ .init(\n+ top: 10,\n+ left: 10,\n+ bottom: 10,\n+ right: 10\n+ )\n+ )\n+ XCTAssertEqual(\n+ stack.width,\n+ 100\n+ )\n+ XCTAssertEqual(\n+ stack.thingsToStack.count,\n+ 1\n+ )\n+ }\n+ \n+ func test_framesForLayout_should_return_expected_frames() {","path":"Tests/HStackTests.swift","commit_id":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","original_commit_id":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","user":{"login":"shaun-seek","id":17534804,"node_id":"MDQ6VXNlcjE3NTM0ODA0","avatar_url":"https://avatars.githubusercontent.com/u/17534804?v=4","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","html_url":"https://github.com/shaun-seek","followers_url":"https://api.github.com/users/shaun-seek/followers","following_url":"https://api.github.com/users/shaun-seek/following{/other_user}","gists_url":"https://api.github.com/users/shaun-seek/gists{/gist_id}","starred_url":"https://api.github.com/users/shaun-seek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shaun-seek/subscriptions","organizations_url":"https://api.github.com/users/shaun-seek/orgs","repos_url":"https://api.github.com/users/shaun-seek/repos","events_url":"https://api.github.com/users/shaun-seek/events{/privacy}","received_events_url":"https://api.github.com/users/shaun-seek/received_events","type":"User","site_admin":false},"body":"It would be worth adding in the what we are testing ... in this instance `test_framesForLayout_when_items_all_fixed_size_should_return_expected_frames`","created_at":"2024-02-25T23:04:28Z","updated_at":"2024-02-25T23:04:28Z","html_url":"https://github.com/seek-oss/seek-stackable/pull/16#discussion_r1501917763","pull_request_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments/1501917763"},"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16#discussion_r1501917763"},"pull_request":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"}},"reactions":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments/1501917763/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":122,"original_line":122,"side":"RIGHT","original_position":138,"position":138,"subject_type":"line"},"pull_request":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","id":1733834560,"node_id":"PR_kwDOA_s7Nc5nWDdA","html_url":"https://github.com/seek-oss/seek-stackable/pull/16","diff_url":"https://github.com/seek-oss/seek-stackable/pull/16.diff","patch_url":"https://github.com/seek-oss/seek-stackable/pull/16.patch","issue_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16","number":16,"state":"open","locked":false,"title":"Add .fill distribution option to HStack","user":{"login":"shafiqurjelani","id":56019484,"node_id":"MDQ6VXNlcjU2MDE5NDg0","avatar_url":"https://avatars.githubusercontent.com/u/56019484?v=4","gravatar_id":"","url":"https://api.github.com/users/shafiqurjelani","html_url":"https://github.com/shafiqurjelani","followers_url":"https://api.github.com/users/shafiqurjelani/followers","following_url":"https://api.github.com/users/shafiqurjelani/following{/other_user}","gists_url":"https://api.github.com/users/shafiqurjelani/gists{/gist_id}","starred_url":"https://api.github.com/users/shafiqurjelani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shafiqurjelani/subscriptions","organizations_url":"https://api.github.com/users/shafiqurjelani/orgs","repos_url":"https://api.github.com/users/shafiqurjelani/repos","events_url":"https://api.github.com/users/shafiqurjelani/events{/privacy}","received_events_url":"https://api.github.com/users/shafiqurjelani/received_events","type":"User","site_admin":false},"body":"Adding a new distribution option called `fill` in the `HStack` to enable filling overall frames width with the item intrinsicContentSize width without the need for us to give a `fixed` width each time for a `Stack/StackableItem`.\r\n\r\n| existing `.fillEqually` | new `.fill` |\r\n| --- | --- |\r\n| | |\r\n\r\nFor example the above can be recreated with the following example.\r\n\r\n``` \r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n icon,\r\n label,\r\n label2\r\n ]\r\n)\r\n```\r\nBefore `.fill` option being introduced the above code will results in similar to the first picture in the table above. Now the `.fill` distribution option takes the intrinsicContentSize width of an item and set that as the width it need to satisfy on the frames we lay out.\r\n\r\n## Note\r\nFor `.fill` distribution option, when an item cant fit in the `HStack` the item will be dropped off from the view.\r\n\r\nExample :-\r\n```\r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n Icon(),\r\n Label(text: \"Be among the first to apply\"),\r\n Label(text: \"Label 2 something longer longer longer longer\"),\r\n Label(text: \"Label 3 something longer longer longer longer longer longer\"),\r\n ]\r\n)\r\n```\r\nThis will yield something like this with `Label 3...` being drop off from the view because it cant fit.\r\n\r\n\r\n\r\nThis behaviour is similar to what we get when we use the native `UIStackView`. \r\n\r\nExample:\r\n\r\n```\r\nlet view = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 400))\r\n\r\nlet hstack1 = hStack()\r\n\r\nview.addSubview(hstack1)\r\n\r\nhstack1.addArrangedSubview(\r\n label(\"title 1\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"Super long anoying title lets see\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"title 3\")\r\n)\r\n```\r\n\r\nThe native `UIStackView` will yield something like this with `title 3` being dropped out because it cant fit.\r\n\r\n\r\n","created_at":"2024-02-20T02:50:36Z","updated_at":"2024-02-25T23:04:28Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fc5d1c9f438d3e1951936d04eae1a80d01a85e50","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits","review_comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments","review_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/4ab734576617aed33d1f68b373ac7f6dad0d5be0","head":{"label":"seek-oss:tech/add-distribution-option-hstack","ref":"tech/add-distribution-option-hstack","sha":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-02-23T08:28:12Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":115,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"base":{"label":"seek-oss:master","ref":"master","sha":"b5e4ab039545375389bf7f5b443f4a26435c2ee1","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-02-23T08:28:12Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":115,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"},"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16"},"issue":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16"},"comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments"},"review_comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments"},"review_comment":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits"},"statuses":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/4ab734576617aed33d1f68b373ac7f6dad0d5be0"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-02-25T23:04:28Z","org":{"id":22927121,"login":"seek-oss","gravatar_id":"","url":"https://api.github.com/orgs/seek-oss","avatar_url":"https://avatars.githubusercontent.com/u/22927121?"}},{"id":"35990799962","type":"PullRequestReviewEvent","actor":{"id":17534804,"login":"shaun-seek","display_login":"shaun-seek","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","avatar_url":"https://avatars.githubusercontent.com/u/17534804?"},"repo":{"id":66796341,"name":"seek-oss/seek-stackable","url":"https://api.github.com/repos/seek-oss/seek-stackable"},"payload":{"action":"created","review":{"id":1899771936,"node_id":"PRR_kwDOA_s7Nc5xPDgg","user":{"login":"shaun-seek","id":17534804,"node_id":"MDQ6VXNlcjE3NTM0ODA0","avatar_url":"https://avatars.githubusercontent.com/u/17534804?v=4","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","html_url":"https://github.com/shaun-seek","followers_url":"https://api.github.com/users/shaun-seek/followers","following_url":"https://api.github.com/users/shaun-seek/following{/other_user}","gists_url":"https://api.github.com/users/shaun-seek/gists{/gist_id}","starred_url":"https://api.github.com/users/shaun-seek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shaun-seek/subscriptions","organizations_url":"https://api.github.com/users/shaun-seek/orgs","repos_url":"https://api.github.com/users/shaun-seek/repos","events_url":"https://api.github.com/users/shaun-seek/events{/privacy}","received_events_url":"https://api.github.com/users/shaun-seek/received_events","type":"User","site_admin":false},"body":null,"commit_id":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","submitted_at":"2024-02-25T23:04:28Z","state":"commented","html_url":"https://github.com/seek-oss/seek-stackable/pull/16#pullrequestreview-1899771936","pull_request_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","author_association":"COLLABORATOR","_links":{"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16#pullrequestreview-1899771936"},"pull_request":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"}}},"pull_request":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16","id":1733834560,"node_id":"PR_kwDOA_s7Nc5nWDdA","html_url":"https://github.com/seek-oss/seek-stackable/pull/16","diff_url":"https://github.com/seek-oss/seek-stackable/pull/16.diff","patch_url":"https://github.com/seek-oss/seek-stackable/pull/16.patch","issue_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16","number":16,"state":"open","locked":false,"title":"Add .fill distribution option to HStack","user":{"login":"shafiqurjelani","id":56019484,"node_id":"MDQ6VXNlcjU2MDE5NDg0","avatar_url":"https://avatars.githubusercontent.com/u/56019484?v=4","gravatar_id":"","url":"https://api.github.com/users/shafiqurjelani","html_url":"https://github.com/shafiqurjelani","followers_url":"https://api.github.com/users/shafiqurjelani/followers","following_url":"https://api.github.com/users/shafiqurjelani/following{/other_user}","gists_url":"https://api.github.com/users/shafiqurjelani/gists{/gist_id}","starred_url":"https://api.github.com/users/shafiqurjelani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shafiqurjelani/subscriptions","organizations_url":"https://api.github.com/users/shafiqurjelani/orgs","repos_url":"https://api.github.com/users/shafiqurjelani/repos","events_url":"https://api.github.com/users/shafiqurjelani/events{/privacy}","received_events_url":"https://api.github.com/users/shafiqurjelani/received_events","type":"User","site_admin":false},"body":"Adding a new distribution option called `fill` in the `HStack` to enable filling overall frames width with the item intrinsicContentSize width without the need for us to give a `fixed` width each time for a `Stack/StackableItem`.\r\n\r\n| existing `.fillEqually` | new `.fill` |\r\n| --- | --- |\r\n| | |\r\n\r\nFor example the above can be recreated with the following example.\r\n\r\n``` \r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n icon,\r\n label,\r\n label2\r\n ]\r\n)\r\n```\r\nBefore `.fill` option being introduced the above code will results in similar to the first picture in the table above. Now the `.fill` distribution option takes the intrinsicContentSize width of an item and set that as the width it need to satisfy on the frames we lay out.\r\n\r\n## Note\r\nFor `.fill` distribution option, when an item cant fit in the `HStack` the item will be dropped off from the view.\r\n\r\nExample :-\r\n```\r\nlet stack = HStack(\r\n spacing: Spacing.xxsmall.value,\r\n distribution: .fill,\r\n thingsToStack: [\r\n Icon(),\r\n Label(text: \"Be among the first to apply\"),\r\n Label(text: \"Label 2 something longer longer longer longer\"),\r\n Label(text: \"Label 3 something longer longer longer longer longer longer\"),\r\n ]\r\n)\r\n```\r\nThis will yield something like this with `Label 3...` being drop off from the view because it cant fit.\r\n\r\n\r\n\r\nThis behaviour is similar to what we get when we use the native `UIStackView`. \r\n\r\nExample:\r\n\r\n```\r\nlet view = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 400))\r\n\r\nlet hstack1 = hStack()\r\n\r\nview.addSubview(hstack1)\r\n\r\nhstack1.addArrangedSubview(\r\n label(\"title 1\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"Super long anoying title lets see\")\r\n)\r\nhstack1.addArrangedSubview(\r\n label(\"title 3\")\r\n)\r\n```\r\n\r\nThe native `UIStackView` will yield something like this with `title 3` being dropped out because it cant fit.\r\n\r\n\r\n","created_at":"2024-02-20T02:50:36Z","updated_at":"2024-02-25T23:04:28Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fc5d1c9f438d3e1951936d04eae1a80d01a85e50","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits","review_comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments","review_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/4ab734576617aed33d1f68b373ac7f6dad0d5be0","head":{"label":"seek-oss:tech/add-distribution-option-hstack","ref":"tech/add-distribution-option-hstack","sha":"4ab734576617aed33d1f68b373ac7f6dad0d5be0","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-02-23T08:28:12Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":115,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"base":{"label":"seek-oss:master","ref":"master","sha":"b5e4ab039545375389bf7f5b443f4a26435c2ee1","user":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"repo":{"id":66796341,"node_id":"MDEwOlJlcG9zaXRvcnk2Njc5NjM0MQ==","name":"seek-stackable","full_name":"seek-oss/seek-stackable","private":false,"owner":{"login":"seek-oss","id":22927121,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyOTI3MTIx","avatar_url":"https://avatars.githubusercontent.com/u/22927121?v=4","gravatar_id":"","url":"https://api.github.com/users/seek-oss","html_url":"https://github.com/seek-oss","followers_url":"https://api.github.com/users/seek-oss/followers","following_url":"https://api.github.com/users/seek-oss/following{/other_user}","gists_url":"https://api.github.com/users/seek-oss/gists{/gist_id}","starred_url":"https://api.github.com/users/seek-oss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seek-oss/subscriptions","organizations_url":"https://api.github.com/users/seek-oss/orgs","repos_url":"https://api.github.com/users/seek-oss/repos","events_url":"https://api.github.com/users/seek-oss/events{/privacy}","received_events_url":"https://api.github.com/users/seek-oss/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/seek-oss/seek-stackable","description":"iOS framework for laying out nested views vertically and horizontally.","fork":false,"url":"https://api.github.com/repos/seek-oss/seek-stackable","forks_url":"https://api.github.com/repos/seek-oss/seek-stackable/forks","keys_url":"https://api.github.com/repos/seek-oss/seek-stackable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seek-oss/seek-stackable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seek-oss/seek-stackable/teams","hooks_url":"https://api.github.com/repos/seek-oss/seek-stackable/hooks","issue_events_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/events{/number}","events_url":"https://api.github.com/repos/seek-oss/seek-stackable/events","assignees_url":"https://api.github.com/repos/seek-oss/seek-stackable/assignees{/user}","branches_url":"https://api.github.com/repos/seek-oss/seek-stackable/branches{/branch}","tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/tags","blobs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/refs{/sha}","trees_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/{sha}","languages_url":"https://api.github.com/repos/seek-oss/seek-stackable/languages","stargazers_url":"https://api.github.com/repos/seek-oss/seek-stackable/stargazers","contributors_url":"https://api.github.com/repos/seek-oss/seek-stackable/contributors","subscribers_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscribers","subscription_url":"https://api.github.com/repos/seek-oss/seek-stackable/subscription","commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/commits{/sha}","git_commits_url":"https://api.github.com/repos/seek-oss/seek-stackable/git/commits{/sha}","comments_url":"https://api.github.com/repos/seek-oss/seek-stackable/comments{/number}","issue_comment_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues/comments{/number}","contents_url":"https://api.github.com/repos/seek-oss/seek-stackable/contents/{+path}","compare_url":"https://api.github.com/repos/seek-oss/seek-stackable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seek-oss/seek-stackable/merges","archive_url":"https://api.github.com/repos/seek-oss/seek-stackable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seek-oss/seek-stackable/downloads","issues_url":"https://api.github.com/repos/seek-oss/seek-stackable/issues{/number}","pulls_url":"https://api.github.com/repos/seek-oss/seek-stackable/pulls{/number}","milestones_url":"https://api.github.com/repos/seek-oss/seek-stackable/milestones{/number}","notifications_url":"https://api.github.com/repos/seek-oss/seek-stackable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seek-oss/seek-stackable/labels{/name}","releases_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases{/id}","deployments_url":"https://api.github.com/repos/seek-oss/seek-stackable/deployments","created_at":"2016-08-28T23:39:16Z","updated_at":"2024-01-10T05:59:14Z","pushed_at":"2024-02-23T08:28:12Z","git_url":"git://github.com/seek-oss/seek-stackable.git","ssh_url":"git@github.com:seek-oss/seek-stackable.git","clone_url":"https://github.com/seek-oss/seek-stackable.git","svn_url":"https://github.com/seek-oss/seek-stackable","homepage":"","size":115,"stargazers_count":6,"watchers_count":6,"language":"Swift","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","swift","uitableview","uitableviewcell"],"visibility":"public","forks":0,"open_issues":1,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16"},"html":{"href":"https://github.com/seek-oss/seek-stackable/pull/16"},"issue":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16"},"comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/issues/16/comments"},"review_comments":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/comments"},"review_comment":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/pulls/16/commits"},"statuses":{"href":"https://api.github.com/repos/seek-oss/seek-stackable/statuses/4ab734576617aed33d1f68b373ac7f6dad0d5be0"}},"author_association":"COLLABORATOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-02-25T23:04:29Z","org":{"id":22927121,"login":"seek-oss","gravatar_id":"","url":"https://api.github.com/orgs/seek-oss","avatar_url":"https://avatars.githubusercontent.com/u/22927121?"}},{"id":"35854094810","type":"CreateEvent","actor":{"id":17534804,"login":"shaun-seek","display_login":"shaun-seek","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","avatar_url":"https://avatars.githubusercontent.com/u/17534804?"},"repo":{"id":66796341,"name":"seek-oss/seek-stackable","url":"https://api.github.com/repos/seek-oss/seek-stackable"},"payload":{"ref":"tech/add-distribution-option-hstack-relativeX","ref_type":"branch","master_branch":"master","description":"iOS framework for laying out nested views vertically and horizontally.","pusher_type":"user"},"public":true,"created_at":"2024-02-21T01:45:53Z","org":{"id":22927121,"login":"seek-oss","gravatar_id":"","url":"https://api.github.com/orgs/seek-oss","avatar_url":"https://avatars.githubusercontent.com/u/22927121?"}},{"id":"34765717828","type":"ReleaseEvent","actor":{"id":17534804,"login":"shaun-seek","display_login":"shaun-seek","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","avatar_url":"https://avatars.githubusercontent.com/u/17534804?"},"repo":{"id":66796341,"name":"seek-oss/seek-stackable","url":"https://api.github.com/repos/seek-oss/seek-stackable"},"payload":{"action":"published","release":{"url":"https://api.github.com/repos/seek-oss/seek-stackable/releases/136760766","assets_url":"https://api.github.com/repos/seek-oss/seek-stackable/releases/136760766/assets","upload_url":"https://uploads.github.com/repos/seek-oss/seek-stackable/releases/136760766/assets{?name,label}","html_url":"https://github.com/seek-oss/seek-stackable/releases/tag/2.0.1","id":136760766,"author":{"login":"shaun-seek","id":17534804,"node_id":"MDQ6VXNlcjE3NTM0ODA0","avatar_url":"https://avatars.githubusercontent.com/u/17534804?v=4","gravatar_id":"","url":"https://api.github.com/users/shaun-seek","html_url":"https://github.com/shaun-seek","followers_url":"https://api.github.com/users/shaun-seek/followers","following_url":"https://api.github.com/users/shaun-seek/following{/other_user}","gists_url":"https://api.github.com/users/shaun-seek/gists{/gist_id}","starred_url":"https://api.github.com/users/shaun-seek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shaun-seek/subscriptions","organizations_url":"https://api.github.com/users/shaun-seek/orgs","repos_url":"https://api.github.com/users/shaun-seek/repos","events_url":"https://api.github.com/users/shaun-seek/events{/privacy}","received_events_url":"https://api.github.com/users/shaun-seek/received_events","type":"User","site_admin":false},"node_id":"RE_kwDOA_s7Nc4IJs2-","tag_name":"2.0.1","target_commitish":"master","name":"2.0.1","draft":false,"prerelease":false,"created_at":"2024-01-12T02:02:58Z","published_at":"2024-01-12T02:04:26Z","assets":[],"tarball_url":"https://api.github.com/repos/seek-oss/seek-stackable/tarball/2.0.1","zipball_url":"https://api.github.com/repos/seek-oss/seek-stackable/zipball/2.0.1","body":"This includes a fix for the `FlowLayoutStack` in situations where the first item exceeds the max width and would incorrectly reset the Y position.","short_description_html":"
This includes a fix for the FlowLayoutStack
in situations where the first item exceeds the max width and would incorrectly reset the Y position.
This release sees Stackable move away from Cocoapods and become a swift package.
\nFlowLayoutStack
has been introduced also to provide simple flow layout functionality