Visibility control — 375 px, English · עברית · العربية
Frame 4a at a phone width. The options stay full-width radio cards at the top of the Access tab; the organization → private confirmation and the platform publish confirmation become BottomSheets; the typed key stays an LTR field in every locale.
en · ltr · 375 · visibility control
Priority
People with a role can always see it.
Everyone else's forms use the common list if one is active.
As a fork, it replaces the common list for everyone.
People with a role — approved access panel
he · rtl · 375 · confirm make private
להפוך את „עדיפות” לפרטית?
- חברים ללא תפקיד לא יראו אותה יותר.
- הטפסים שלהם ישתמשו ברשימה המשותפת, אם יש אחת פעילה — אחרת יוצג „הרשימה לא זמינה”.
- ערכים שנשמרו מהרשימה המשותפת יציגו שוב את התוויות המשותפות.
- ערכים שנבחרו מהעותק שלכם ימשיכו להציג את התוויות שלכם.
ar · rtl · 375 · read-only (not owner)
الأولوية
◉ المؤسسة — جميع أعضاء Acme Logistics. يمكن لمالك القائمة فقط تغيير ذلك.
Saving · saved · refused
en · ltr · 375 · platform publish (operators only)
Publish “Ticket channel” to every organization?
- Every organization can read it and pick its values.
- It can never become private or organization-only again.
States at 375 px
Same states as frame 4a.
loading
error
Couldn't load access settings. Nothing was changed.
publishing
Rules the implementation must keep
- At ≤ 40em the options are full-width radio cards (DS RadioCardGroup), each ≥ 44 px, at the top of the Access tab; the roster below becomes one card per person. Customer organizations never see the “Every organization” option — not even disabled.
- Organization → Private opens a BottomSheet with the same four consequence lines as frame 4a (fork lines only when
forked_fromis set). Cancel holds initial focus. Private → Organization saves directly and toasts. - Platform publish is a BottomSheet with the typed key. The key field is
dir="ltr", monospaced, with autocapitalize, autocorrect and spellcheck off so a phone keyboard cannot alter what is typed; Publish enables only on an exact match. - Read-only is a statement, not a disabled form: non-owners see the current visibility and who can change it.
- RTL: organization names and keys are bidi-isolated; quotation marks follow the locale (
„…”in Hebrew); visibility glyphs are not mirrored.
Test hooks: [data-frame='14-rtl-mobile-visibility'] · [data-device='375'] · [data-locale='he'][data-dir='rtl'] · [data-locale='ar'][data-dir='rtl'] · [data-panel='visibility-control'] · [data-control='visibility'] · [data-visibility-option='private'] · [data-visibility-option='org'][aria-checked='true'] · [data-confirm='visibility-to-private'][data-presentation='bottom-sheet'] · [data-consequence='stored-fork'] · [data-initial-focus='true'] · [data-state='read-only'] · [data-state='saving'] · [data-result='visibility-saved'] · [data-case='visibility-not-owner'] · [data-confirm='publish-platform'][data-presentation='bottom-sheet'] · [data-confirm-input='key'] · [data-confirm-state='publishing'] · [data-state='loading'] · [data-state='error'] · [data-rules='rtl-mobile-visibility']
Playwright drives the real Access tab at { viewport: 375×812, locale: en | he-IL | ar }: no horizontal scroll, choosing Private opens a
bottom-sheet confirm, and the publish key input has dir='ltr' with autocapitalize off.
Tokens only — no raw hex, spacing or type outside tokens.css / frame.css / mobile.css.