discourse/app/assets/stylesheets/mobile
Isaac Janzen 21f23cc032
DEV: Convert header to glimmer (#25214)
Here is a breakdown of the changes that will be implemented in this PR.

# Widgets -> Glimmer

Obviously, the intention of the todo here is to convert the header from widgets to glimmer. This PR splits the respective widgets as so:

### widgets/site-header.js
```mermaid height=200
flowchart TB
    A[widgets/site-header.js] 
    A-->B[components/glimmer-site-header.gjs]
```

### widgets/header.js and children
```mermaid height=200
flowchart TB
    A[widgets/header.js] 
    A-->B[components/glimmer-header.gjs]
    B-->C[glimmer-header/contents.gjs]
    C-->D[./auth-buttons.gjs]
    C-->E[./icons.gjs]
    C-->F[./user-menu-wrapper.gjs]
    C-->G[./hamburger-dropdown-wrapper.gjs]
    C-->H[./user-menu-wrapper.gjs]
    C-->I[./sidebar-toggle.gjs]
    C-->J[./topic/info.gjs]
```

There are additional components rendered within the `glimmer-header/*` components, but I will leave those out for now. From this view you can see that we split apart the logic of `widgets/header.js` into 10+ components. Breaking apart these mega files has many benefits (readability, etc).

# Services

I have introduced a [header](cdb42caa04/app/assets/javascripts/discourse/app/services/header.js) service. This simplifies how we pass around data in the header, as well as fixes a bug we have with "swiping" menu panels.


# Modifiers
Added a [close-on-click-outside](cdb42caa04/app/assets/javascripts/discourse/app/modifiers/close-on-click-outside.js) modifier that is built upon the [close-on-click-outside modifier](https://github.com/discourse/discourse/blob/main/app/assets/javascripts/float-kit/addon/modifiers/close-on-click-outside.js) that @jjaffeux built for float-kit. I think we could replace float-kit's implementation with mine and have it in a centralized location as they are extremely similar.

# Tests
Rewrote the existing header tests ([1](https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/tests/integration/components/widgets/header-test.js), [2](https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/tests/integration/components/site-header-test.js)) as system tests. 

# Other
- Converted `widgets/user-status-bubble.js` to a gjs component
- Converted `widgets/sidebar-toggle.js` to a gjs component
- Converted `topicFeaturedLinkNode()` to a gjs component
- Deprecated the [docking mixin](https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/mixins/docking.js)
2024-02-23 11:08:15 -07:00
..
components DEV: Render glimmer notification items for user notification list (#24802) 2023-12-11 11:04:43 -06:00
select-kit DEV: Use css var font sizes (#18518) 2022-10-12 15:31:59 +02:00
_index.scss UX: hide the draggable icon in the sidebar form on mobile (#25738) 2024-02-21 09:16:49 +11:00
admin_badges.scss
admin_customize.scss DEV: Clean up some styles (#14374) 2021-09-20 09:52:03 -04:00
admin_report_counters.scss
admin_report_table.scss DEV: Use css var font sizes (#18518) 2022-10-12 15:31:59 +02:00
admin_report.scss
admin_reports.scss
alert.scss FEATURE: update bootstrap mode notice to add invite and wizard links (#17822) 2022-08-10 00:13:42 +05:30
buttons.scss
compose.scss FIX: Show tag chooser in composer for PM on mobile (#22241) 2023-06-26 20:12:32 +03:00
dashboard.scss UX: add gift emoji styling for new features (#24523) 2023-11-27 09:32:28 +11:00
dialog.scss FIX: Modals on Android when keyboard is visible (#24442) 2023-11-20 11:56:06 -05:00
directory.scss REFACTOR: user directories without <table>, second attempt (#20515) 2023-03-02 15:10:19 -05:00
discourse.scss UX: Make Sidebar more consistent with user menu on mobile (#17940) 2022-08-16 13:45:32 +08:00
edit-category.scss DEV: Use css var font sizes (#18518) 2022-10-12 15:31:59 +02:00
emoji.scss UX: Larger images in mobile emoji picker (#17013) 2022-06-07 12:00:09 -04:00
group.scss UX: style improvements to new user tables (#20530) 2023-03-06 09:30:48 -05:00
header.scss DEV: Convert header to glimmer (#25214) 2024-02-23 11:08:15 -07:00
invite-signup.scss DEV: update classes, remove unused CSS (#25825) 2024-02-23 09:14:37 -05:00
lightbox.scss FEATURE: automatic dark mode (#10341) 2020-08-03 22:57:10 -04:00
login-modal.scss UX: Modal mobile fixes (#25788) 2024-02-21 13:49:42 +01:00
menu-panel.scss UX: remove sidebar background color (#21775) 2023-06-06 09:24:56 -04:00
modal-overrides.scss UX: overflow fix for add participants to PM on mobile (#25437) 2024-01-26 09:26:25 +01:00
modal.scss DEV: update classes, remove unused CSS (#25825) 2024-02-23 09:14:37 -05:00
new-user.scss DEV: remove old and experimental user menu styles (#21326) 2023-05-02 15:07:42 -04:00
personal-message.scss UX: adjust pm styles to enbubble controls (#24996) 2023-12-22 14:28:02 -05:00
post-action-feedback.scss FIX: allow styling of feedback on mobile (#25072) 2023-12-30 08:57:16 +11:00
push-notifications-mobile.scss
reviewables.scss UX/DEV: Review queue redesign fixes (#20239) 2023-03-02 16:40:53 +01:00
search.scss UX: Fix topic status icon size in mobile search results (#15251) 2021-12-09 14:32:12 -05:00
sidebar.scss UX: hide the draggable icon in the sidebar form on mobile (#25738) 2024-02-21 09:16:49 +11:00
tagging.scss FEATURE: ability to add description to tags (#15125) 2021-12-01 09:18:56 +11:00
topic-list.scss UX: Add loading indicator when loading 'new or updated topics' (#25649) 2024-02-13 10:41:22 +00:00
topic-post.scss UX: fix topic map link expansion hover (#25822) 2024-02-22 15:47:38 -05:00
topic.scss UX: Adjust topic progress wrapper border radius (#24470) 2023-11-21 09:15:20 -06:00
upload.scss FEATURE: use native file picker in composer (#13552) 2021-06-30 12:45:47 +04:00
user-badges.scss
user.scss UX: fix alignment (#24718) 2023-12-05 14:19:21 +01:00