This commit is contained in:
2024-03-22 03:47:51 +05:30
parent 8bcf3d211e
commit 89819f6fe2
28440 changed files with 3211033 additions and 2 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+3052
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+16
View File
@@ -0,0 +1,16 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
function alert($elements) {
$elements.forEach(($alert) => {
$alert.addEventListener('click', (e) => {
if (e.target && e.target.classList.contains('close')) {
$alert.remove();
}
});
});
}
+16
View File
@@ -0,0 +1,16 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
function alert($elements) {
$elements.forEach(($alert) => {
$alert.addEventListener('click', (e) => {
if (e.target && e.target.classList.contains('close')) {
$alert.remove();
}
});
});
}
+8
View File
@@ -0,0 +1,8 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const buttonGroups = makeRadioBehavior('click', 'button', 'button--active');
+8
View File
@@ -0,0 +1,8 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const buttonGroups = makeRadioBehavior('click', 'button', 'button--active');
+33
View File
@@ -0,0 +1,33 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
function dropdowns($elements) {
$elements.forEach(($dropdown) => {
if ($dropdown.classList.contains('dropdown--hoverable')) {
return;
}
const $toggle = $dropdown.querySelector('[data-toggle="dropdown"]');
$toggle.addEventListener('click', (e) => {
function dismissDropdown() {
$toggle.classList.remove('button--active');
$dropdown.classList.remove('dropdown--show');
document.removeEventListener('click', dismissDropdown);
}
if (!$dropdown.classList.contains('dropdown--show')) {
$toggle.classList.add('button--active');
$dropdown.classList.add('dropdown--show');
setTimeout(() => {
document.addEventListener('click', dismissDropdown);
}, 0);
} else {
dismissDropdown();
}
});
});
}
+33
View File
@@ -0,0 +1,33 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
function dropdowns($elements) {
$elements.forEach(($dropdown) => {
if ($dropdown.classList.contains('dropdown--hoverable')) {
return;
}
const $toggle = $dropdown.querySelector('[data-toggle="dropdown"]');
$toggle.addEventListener('click', (e) => {
function dismissDropdown() {
$toggle.classList.remove('button--active');
$dropdown.classList.remove('dropdown--show');
document.removeEventListener('click', dismissDropdown);
}
if (!$dropdown.classList.contains('dropdown--show')) {
$toggle.classList.add('button--active');
$dropdown.classList.add('dropdown--show');
setTimeout(() => {
document.addEventListener('click', dismissDropdown);
}, 0);
} else {
dismissDropdown();
}
});
});
}
+82
View File
@@ -0,0 +1,82 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
function menu($elements) {
$elements.forEach(($menu) => {
$menu.addEventListener('click', (event) => {
let $listItem = event.target;
while ($listItem) {
if ($listItem.classList.contains('menu')) {
return;
}
if ($listItem.classList.contains('menu__list-item')) {
break;
}
$listItem = $listItem.parentNode;
}
// Not clicking on a list item.
if (!$listItem) {
return;
}
const regularSubList =
$listItem.classList.contains('menu__list-item') &&
!$listItem.querySelector('.menu__list-item-collapsible');
const caretBtn = event.target.classList.contains('menu__caret');
if (regularSubList || caretBtn) {
$listItem.classList.toggle('menu__list-item--collapsed');
}
// Don't add any active class if non-leaf item selected.
if ($listItem.querySelector('.menu__list')) {
return;
}
$menu
.querySelectorAll('.menu__link')
.forEach(($elItem) => $elItem.classList.remove('menu__link--active'));
// Traverse parents and add active class.
while ($listItem) {
if ($listItem.classList.contains('menu')) {
return;
}
if ($listItem.classList.contains('menu__list-item')) {
const $link = $listItem.querySelector('.menu__link');
if ($link) {
$link.classList.add('menu__link--active');
}
const $listItemCollapsible = $listItem.querySelector(
'.menu__list-item-collapsible',
);
if ($listItemCollapsible) {
$listItemCollapsible.classList.add(
'menu__list-item-collapsible--active',
);
}
}
$listItem = $listItem.parentNode;
}
});
$navbarSidebarBackButton = document.querySelector('.navbar-sidebar__back');
$navbarSidebarItems = document.querySelector('.navbar-sidebar__items');
if ($navbarSidebarBackButton) {
$navbarSidebarBackButton.addEventListener('click', () => {
$navbarSidebarItems.classList.remove(
'navbar-sidebar__items--show-secondary',
);
});
}
});
}
+82
View File
@@ -0,0 +1,82 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
function menu($elements) {
$elements.forEach(($menu) => {
$menu.addEventListener('click', (event) => {
let $listItem = event.target;
while ($listItem) {
if ($listItem.classList.contains('menu')) {
return;
}
if ($listItem.classList.contains('menu__list-item')) {
break;
}
$listItem = $listItem.parentNode;
}
// Not clicking on a list item.
if (!$listItem) {
return;
}
const regularSubList =
$listItem.classList.contains('menu__list-item') &&
!$listItem.querySelector('.menu__list-item-collapsible');
const caretBtn = event.target.classList.contains('menu__caret');
if (regularSubList || caretBtn) {
$listItem.classList.toggle('menu__list-item--collapsed');
}
// Don't add any active class if non-leaf item selected.
if ($listItem.querySelector('.menu__list')) {
return;
}
$menu
.querySelectorAll('.menu__link')
.forEach(($elItem) => $elItem.classList.remove('menu__link--active'));
// Traverse parents and add active class.
while ($listItem) {
if ($listItem.classList.contains('menu')) {
return;
}
if ($listItem.classList.contains('menu__list-item')) {
const $link = $listItem.querySelector('.menu__link');
if ($link) {
$link.classList.add('menu__link--active');
}
const $listItemCollapsible = $listItem.querySelector(
'.menu__list-item-collapsible',
);
if ($listItemCollapsible) {
$listItemCollapsible.classList.add(
'menu__list-item-collapsible--active',
);
}
}
$listItem = $listItem.parentNode;
}
});
$navbarSidebarBackButton = document.querySelector('.navbar-sidebar__back');
$navbarSidebarItems = document.querySelector('.navbar-sidebar__items');
if ($navbarSidebarBackButton) {
$navbarSidebarBackButton.addEventListener('click', () => {
$navbarSidebarItems.classList.remove(
'navbar-sidebar__items--show-secondary',
);
});
}
});
}
+32
View File
@@ -0,0 +1,32 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
function navbar($elements) {
$elements.forEach(($navbar) => {
// TODO: Use data-toggle approach.
const $toggle = $navbar.querySelector('.navbar__toggle');
const $sidebar = $navbar.querySelector('.navbar-sidebar');
const $sidebarClose = $navbar.querySelector('.navbar-sidebar__close');
const $backdrop = $navbar.querySelector('.navbar-sidebar__backdrop');
const $sidebarItems = $navbar.querySelector('.navbar-sidebar__items');
if ($toggle == null || $sidebarClose == null) {
return;
}
$toggle.addEventListener('click', (e) => {
$navbar.classList.add('navbar-sidebar--show');
$sidebarItems.classList.add('navbar-sidebar__items--show-secondary');
});
[$backdrop, $sidebarClose].forEach(($el) =>
$el.addEventListener('click', (e) => {
$navbar.classList.remove('navbar-sidebar--show');
}),
);
});
}
+32
View File
@@ -0,0 +1,32 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
function navbar($elements) {
$elements.forEach(($navbar) => {
// TODO: Use data-toggle approach.
const $toggle = $navbar.querySelector('.navbar__toggle');
const $sidebar = $navbar.querySelector('.navbar-sidebar');
const $sidebarClose = $navbar.querySelector('.navbar-sidebar__close');
const $backdrop = $navbar.querySelector('.navbar-sidebar__backdrop');
const $sidebarItems = $navbar.querySelector('.navbar-sidebar__items');
if ($toggle == null || $sidebarClose == null) {
return;
}
$toggle.addEventListener('click', (e) => {
$navbar.classList.add('navbar-sidebar--show');
$sidebarItems.classList.add('navbar-sidebar__items--show-secondary');
});
[$backdrop, $sidebarClose].forEach(($el) =>
$el.addEventListener('click', (e) => {
$navbar.classList.remove('navbar-sidebar--show');
}),
);
});
}
+8
View File
@@ -0,0 +1,8 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const pills = makeRadioBehavior('click', 'pills__item', 'pills__item--active');
+8
View File
@@ -0,0 +1,8 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const pills = makeRadioBehavior('click', 'pills__item', 'pills__item--active');
+21
View File
@@ -0,0 +1,21 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
function makeRadioBehavior(eventName, itemClass, activeItemClass) {
return function radioBehavior($elements) {
$elements.forEach(($element) => {
$element.addEventListener(eventName, (event) => {
if (event.target && event.target.classList.contains(itemClass)) {
$element
.querySelectorAll('.' + itemClass)
.forEach(($elItem) => $elItem.classList.remove(activeItemClass));
event.target.classList.add(activeItemClass);
}
});
});
};
}
+21
View File
@@ -0,0 +1,21 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
function makeRadioBehavior(eventName, itemClass, activeItemClass) {
return function radioBehavior($elements) {
$elements.forEach(($element) => {
$element.addEventListener(eventName, (event) => {
if (event.target && event.target.classList.contains(itemClass)) {
$element
.querySelectorAll('.' + itemClass)
.forEach(($elItem) => $elItem.classList.remove(activeItemClass));
event.target.classList.add(activeItemClass);
}
});
});
};
}
+8
View File
@@ -0,0 +1,8 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const tabs = makeRadioBehavior('click', 'tabs__item', 'tabs__item--active');
+8
View File
@@ -0,0 +1,8 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const tabs = makeRadioBehavior('click', 'tabs__item', 'tabs__item--active');