Commit Graph

2061 Commits

Author SHA1 Message Date
Stanko K.R. 8e4f9ce5e7 Cleanup form helpers 2026-03-25 17:26:49 +01:00
Stanko K.R. 4fb1cddb4c Use WebComponents for buttons
This simplifies the loading and cleanup logic, while providing ubiquitous support across JS frameworks. Buttons can now be added in any way imaginable and still work without requiring additional initialization. The upside of this aproach is that it doesn't require a mutation observer nor a global click listener, and is supported by all browsers that also support passkeys.
2026-03-25 17:26:49 +01:00
Sean Mitchell 4b4454de89 Update colophon icons 2026-03-24 13:32:39 -07:00
Jason Fried 2c60ddb7c7 Added Basecamp + HEY icons/links 2026-03-24 12:12:33 -07:00
Alexander Zaytsev 6d6f94ce13 Merge branch 'main' into delete-account-improvements 2026-03-19 15:26:31 +01:00
Jorge Manrubia cf10dbd91e Add 1GB storage cap with staff bypass (#2729)
Re-applies the storage limit from #2713 (reverted in #2715) with an
exception for staff identities so our own account isn't blocked.
2026-03-19 12:38:39 +01:00
Stanko Krtalić 5701aad8d7 Merge pull request #2623 from basecamp/passkeys
Passkeys
2026-03-18 14:54:54 +01:00
Stanko K.R. 017bcc9ce1 Polish up Passkey interface
- Fix indentation
- Split awkward initializer into separate methods
- Rename credentials to passkeys
- Simplify authenticator registry loading
- Flatten nested errors under ActionPack::WebAuthn
- Set passkey current params only requests that use it
- Inline anemic methods
- Replace custom validation with ActiveModel::Validation
- Rename identity to holder in Passkey
- Rename credentials to passkeys in JS
- Extract framework library out of controllers
- Pass params hashes down to ActionPack
- Attempt to simplify public interface
- Push data decoding down to the classes representing the data
- Introduce has_passkeys
- Add CBOR bigint support
- Rename ActionPack::WebAuthn::Passkey to ActionPack::Passkey
- Add create_passkey_button helper
- Rename public-key to creation-options
- Add sign_in_with_passkey_button helper
- Dispatch events for the whole Passkey lifecycle
- Add ED25519 support
- Prevent crash on missing meta tag
- Validate resident key options
- Don't clobber existing ActionPack config options
- Validate cryptographic params
- Move CurrentWebAuthnRequest into ActionPack::Passkey
- Use ActiveModel::Attributes for Options objects
- Implement expiring challanges
- Add lifecycle events
- Extract param helpers into Request
- Add passkey_creation_options and passkey_request_options helpers
- Add create_passkey_challenge to make it easier to override the create method if needed
- Prefix all view helpers with passkey_
- Auto-include ActionPack::Passkey::Holder
- Make the passkey challange url configurable
- Add a reminder about Passkeys to the magic link email
2026-03-18 11:51:10 +01:00
Andy Smith f4fbe17b22 Nicer passkey styles 2026-03-18 11:51:09 +01:00
Stanko K.R. fbe9252db1 Auto-suggest name for new Passkeys
- Use plain client data json everywhere
- Expose AAGUID and backed_up on Credentials
- Make attestation verifiers configurable
- Auto-suggest names for passkeys and show icons
2026-03-18 11:49:59 +01:00
Stanko K.R. da69039476 Implement Passkey authentication 2026-03-18 11:49:23 +01:00
Andy Smith 70c19e4881 Style polish 2026-03-18 11:49:23 +01:00
Jorge Manrubia 0be8041953 Revert "Add 1GB storage cap with self-host notice" 2026-03-17 17:51:07 +01:00
Jorge Manrubia 0b0f1c4891 Merge pull request #2713 from basecamp/add-storage-limit-notice
Add 1GB storage cap with self-host notice
2026-03-17 17:45:20 +01:00
Mike Dalessio c29e785fc1 Merge pull request #2708 from basecamp/dep-lexxy-082
Configure Lexxy to add extra spacing between block elements
2026-03-17 12:42:17 -04:00
Andy Smith b5b3d1cd37 Style messages for account limits 2026-03-17 11:33:49 -05:00
Zoltan Hosszu 1f24ed662b Increase max width for mention prompts 2026-03-17 10:31:53 -04:00
Zoltan Hosszu ea871757f2 Mention delete button fix 2026-03-17 10:31:53 -04:00
Zoltan Hosszu 24446afba7 Image gallery size fixes 2026-03-17 10:31:53 -04:00
Adrien Maston 780607dddc Merge branch 'main' into mobile/bridge-done-stamp
* main: (43 commits)
  Remove payment/subscription system and card/storage limits
  Conditionally disable peer verification for ZIP streaming
  Prevent HTML injection through filenames
  Revert "Configure Lexxy to add extra spacing between block elements"
  Configure Lexxy to add extra spacing between block elements
  SaaS usage reporting (#2690)
  Update app/models/user/named.rb
  Prevent line breaks in the middle of familiar_name
  Tweak the layout
  Set the list of importable models based on the record sets in the manifest
  Validate polymorphic types against importable models allowlist
  Fix that the "maybe" stream wouldn't be replaced after triaging a card
  Use x_user_agent cookie for platform detection in Hotwire Native
  Add JSON response format to entropy endpoints (#2673)
  Fix path traversal vulnerability in ActiveStorage blob key import
  Enable CORS fetch mode for storage requests
  Revert CORS fetch mode for Active Storage
  Use CORS fetch mode for Active Storage to enable `maxEntrySize` checks
  Only start offline mode when signed in
  Exclude service worker and edit/pin/watch/new pages from main cache
  ...
2026-03-17 15:27:29 +01:00
Adrien Maston 99e5af6f95 Tweak the layout
... left aligning
2026-03-11 13:19:48 +01:00
Adrien Maston 38ecacc2b0 Hide web stamp 2026-03-09 15:43:05 +01:00
Adrien Maston a892d52ee0 Move stamp back in the footer by default
(narrow viewport)
2026-03-09 15:40:30 +01:00
Adrien Maston 217f9a0de0 Remove colored container around card in perma 2026-03-09 15:39:41 +01:00
Alexander Zaytsev ae96509bda .step__checkbox is now unused 2026-03-06 18:23:56 +01:00
Alexander Zaytsev 04bf063e3c Make the Delete account dialog more careful 2026-03-06 18:01:23 +01:00
Alexander Zaytsev 932d40878f Extract generic .checkbox from .step__checkbox 2026-03-05 18:06:10 +01:00
Alexander Zaytsev 615ac948c8 Add styles for danger zone section 2026-03-05 17:31:48 +01:00
Adrien Maston 98d019d47b Make it a fitted pill shape on iOS 2026-03-04 15:36:07 +01:00
Andy Smith c41e3277c8 Merge branch 'main' into fix-blurred-nav-menu-in-safari 2026-03-03 09:52:12 -06:00
Andy Smith f8815fd914 Merge pull request #2603 from nqst/mobile-nav-menu-no-autofocus
Mobile → Jump menu: Remove input autofocus
2026-03-03 09:37:10 -06:00
Adrien Maston 00dd28790b Merge pull request #2644 from basecamp/mobile/done-button-with-icon
Mobile / Done button with icon
2026-03-03 11:38:56 +01:00
Adrien Maston 0cdb4495f9 Merge pull request #2640 from basecamp/mobile/search-scrolling+clear-suggestion
Mobile / Search scrolling + clear button suggestion
2026-03-03 11:38:27 +01:00
Adrien Maston a041c5bbfb Merge pull request #2643 from basecamp/mobile/fix-tag-button-tap-target
Mobile / Fix tag button tap target
2026-03-03 11:34:35 +01:00
Adrien Maston 9798026e73 Merge branch 'mobile/search-scrolling' into mobile/search-scrolling+clear-suggestion
* mobile/search-scrolling:
  Mobile: improve search screen (#2636)
  Document has_attachments in API card responses (#2523)
  Change exceeding and nearing limits to account for the 1000th card (#2345)
  Include concrete example motivating this module file
  Simplify comment in skip-detached override
  Extract detached-blob guard into its own file
  Skip AnalyzeJob when blob has no attachments
  Allow notice to take more inline space
  Fix small documentation typos
  Display the save form button on Board Settings page as a bridge button
  billing.rb: destroy -> destroy!
  Strip whitespace from webhook URLs
  Add test for webhook URL with trailing whitespace
2026-03-03 11:33:00 +01:00
Jay Ohms 2e6d06afa7 Mobile: improve search screen (#2636)
* Disable search results nested scrolling behavior for mobile apps

* Display the native search input clear button in the native apps
2026-03-03 11:22:28 +01:00
Adrien Maston 757f990b85 Merge pull request #2641 from basecamp/mobile/fix-notice-size
Mobile / Fix notice size
2026-03-03 10:32:45 +01:00
Jay Ohms 1e18ddcad5 Merge branch 'mobile/search-scrolling' into mobile/search-scrolling+clear-suggestion
* mobile/search-scrolling:
  Extract event particulars helper method
  Reapply "Push event payload body updates"
  Bump z-index
  Bump z-index
  dep: Fix up Gemfile.saas.lock
2026-03-02 11:53:55 -05:00
Jay Ohms 71e295fb22 Merge branch 'main' into mobile/search-scrolling
* main:
  Extract event particulars helper method
  Reapply "Push event payload body updates"
  Bump z-index
  Bump z-index
  dep: Fix up Gemfile.saas.lock
2026-03-02 11:53:28 -05:00
Adrien Maston bedd2ff8ac Add check icon 2026-03-02 16:56:24 +01:00
Adrien Maston f4c35a1ca4 Merge pull request #2642 from basecamp/mobile/fix-missing-draft-button
Mobile / Fix missing draft button
2026-03-02 16:28:18 +01:00
Adrien Maston 911d114eb5 Add tap target button utility 2026-03-02 15:46:34 +01:00
Adrien Maston 85ba8a63d5 Bump z-index 2026-03-02 15:07:26 +01:00
Adrien Maston ef980a0d48 Allow notice to take more inline space 2026-03-02 14:50:58 +01:00
Adrien Maston 6a4db9af4d Show the custom clear button
... instead of the browser's
2026-03-02 14:22:28 +01:00
Adrien Maston cc6809cd1f Bump z-index 2026-03-02 11:03:32 +01:00
Jay Ohms 8a1a18562c Display the native search input clear button in the native apps 2026-02-28 05:10:30 -05:00
Jay Ohms cac08c8f06 Disable search results nested scrolling behavior for mobile apps 2026-02-28 04:39:36 -05:00
Jay Ohms 4819b89a78 Merge pull request #2621 from basecamp/fix-long-card-title-truncation
Fix long card titles truncating in Safari
2026-02-27 14:14:53 -05:00
Zoltan Hosszu 295b5dd94d Tweak for ... icon to prevent Safari clipping 2026-02-27 10:49:03 +01:00