License GPLv3
Disclaimer!
Автор проекта (WTERH), заранее сообщаю, что большая часть кода была сгенерирована с помощью нейронной сети - Mistral.
Автор оставляет за собой право вносить изменения так же прибегая к помощи других неронных сетей.
Проект не претендует на какие-либо привелегии, признание, участие сообщества jQuery разработчиков в развитии проекта.
Автор реализовал требуемую логику исключительно для собственных нужд и прототипирования интерфейсов "на коленке".
Используемый механизм реактивности может быть не полным\не полноценным, а конечная реализация проседать по перфомансам и прочим бенчмаркам, в т.ч. в случае, если Вы захотите использовать проект в собственных прототипах или коленочных решениях.
- Badge
- Breadcrumbs
- Chips
- Contact List
- Content Block
- Data Tables
- Dialog
- FAB (Floating Action Button)
- Form Inputs
- List
- List Button
- Menu List
- Messages
- Navbar
- Notification
- Side Panel
- Popover
- Popup
- Preloader
- Progressbar
- Radio
- Range Slider
- Reactive
- Searchbar
- Segmented Control
- Sheet Modal
- Stepper
- Subnavbar
- Tabber
- Toast
- Toggle
- Toolbar
Бейдж - предназначен для добавления меток на кнопки\ссылки. Например, чтобы показать наличие новых уведомлений, на соответствующей кнопке
- content - содержимое бейджа
- type - цветовой тип бейджа
$(function () {
const badge = $('#badge').i3Badge({
content: 'New',
type: 'primary',
})
})
Хлебные крошки - используется для генерации хлебных крошек, отображающих глубину просмотра, с возможностью быстро подняться выше
- items - массив крошек
- text - лейбл крошки
- href - ссылка крошки
- active - активный элемент
$(function () {
const breadrcrumbs = $('#breadcrumbs').i3Breadcrumbs({
items: [
{ text: 'Home', url: '/' },
{ text: 'Category', url: '/category' },
{ text: 'Subcategory', url: '/subcategory', active: true },
],
})
})
Кусочки - дополнительные метки\теги для блоков, кнопок, список и т.д.
- chips - массив кусочков
- content - текст кусочка
- deletable - дать ли возможность удалить
- type - тип кусочка
- color - цвет кусочка
- onDelete - событие удаления
$(function () {
const chips = $('#chips').i3Chips({
chips: [
{ content: 'Chip 1', deletable: true },
{ content: 'Chip 2', type: 'contact', deletable: true },
{ content: 'Chip 3', color: '#ffcc00', deletable: true },
],
onDelete: function () {
console.log('Chip deleted')
},
})
})
Список контактов - список, содержащий упорядоченные по алфавиту контакты
- contacts - массив контактов
$(function () {
const contactList = $('#contactList').i3ContactList({
contacts: [
{ name: 'John Doe', email: '[email protected]' },
{ name: 'Jane Doe', email: '[email protected]' },
{ name: 'Jim Smith', email: '[email protected]' },
],
})
})
Блок контента - простой блок контента содержащий текст или медиа
- type - тип блока, на всю ширину родителя, с рамкой, с отступом и рамкой, с заголовком, с подвалом, с заголовком и подвалом
- header - содержимое заголовка
- content - содержимое тела
- footer - содержимое подвала
$(function () {
const contentBlock = $('#contentBlock').i3ContentBlock({
type: 'inset-outline', // Change the type as needed
header: 'Header',
content: 'Main content goes here.',
footer: 'Footer',
})
})
Таблицы - простые таблицы, с возможностью использования dataTables.js (не включен в поставку, не является зависимостью)
- columns - массив колонок
- title - заголовое колонки
- data тип колонки
- data - строки таблицы
- name - первое поле
- email - второе поле
- age - третье поле
$(function () {
const dataTables = $('#dataTable').i3DataTables({
columns: [
{ title: 'Name', data: 'name' },
{ title: 'Email', data: 'email' },
{ title: 'Age', data: 'age' },
],
data: [
{ name: 'John Doe', email: '[email protected]', age: 30 },
{ name: 'Jane Doe', email: '[email protected]', age: 28 },
{ name: 'Jim Smith', email: '[email protected]', age: 35 },
],
})
})
Диалоговое окно - аналогичто модальным окнам
- content - содержимое окна
- buttons - массив кнопок
- text - лейбл кнопки
- type - тип кнопки
- onClick - событие клика кнопки
$(function () {
const dialogContainer = $('#dialogContainer').i3Dialog({
content: 'Do you want to continue?',
buttons: [
{ text: 'Yes', type: 'primary' },
{ text: 'No', type: 'secondary' },
],
onClick: function (index) {
console.log(`Button ${index} clicked!`)
},
})
$('#openDialog').on('click', function () {
dialogContainer.dialog('open')
})
})
Плавающая кнопка - предназначена для размещения кнопки, например для загрузки файлов или создания постов
- ariaLabel - описание кнопки для экранного диктора
- icon - иконка
- position - позиция кнопки
- onClick - событие нажатия
$(function () {
const fab = $('#fabButton').i3Fab({
ariaLabel: 'Add',
icon: 'fas fa-plus',
onClick: function () {
console.log('FAB button clicked!')
},
position: 'bottom-right', // Change the position as needed
})
})
Генератор полей - генерирует поля для форм
- type - тип поля, outline, floating, outline-floating и т.д.
- label - лейбл поля
- inputType - тип поля
- id - идентификатор
- name - имя поля
- placeholder - подсказка
- value - значение
- required - обязательность
- clearButton - показать кнопку очистки
- validation - валидировать поле
- validationMessage - сообщение валидации
- additionalInfo - дополнительная информация
$(function () {
$('#inputField1').i3FormInputs({
type: 'outline',
label: 'Outline Input',
name: 'outlineInput',
placeholder: 'Enter outline input',
})
$('#inputField2').formInputs({
type: 'floating',
label: 'Floating Input',
name: 'floatingInput',
placeholder: 'Enter floating input',
})
$('#inputField3').formInputs({
type: 'outline-floating',
label: 'Outline Floating Input',
name: 'outlineFloatingInput',
placeholder: 'Enter outline floating input',
clearButton: true,
validation: true,
validationMessage: 'Custom validation message',
additionalInfo: 'Additional information for this input field',
})
})
Список - простой список ссылок
- items - массив элементов
- text - текст элемента
- href - ссылка элемента
$(function () {
const list = $('#myList').i3List({
items: [
{text: 'Item 1', href: '#'},
{text: 'Item 2', href: '#'},
{text: 'Item 3', href: '#'},
],
})
})
Список кнопок - простой список кнопок
- toggleText - подпись для раскрываемого меню
- items - массив элементов списка кнопок
- text - лейбл кнокпи
- href - ссылка кнопки
$(function () {
const listButton = $('#myListButton').i3ListButton({
toggleText: 'Open Menu',
items: [
{text: 'Item 1', href: '#'},
{text: 'Item 2', href: '#'},
{text: 'Item 3', href: '#'},
],
})
})
Список элементов меню - простое меню с возможностью добавить иконки и подпись
- items - массив элементов меню
- icon - иконка элемента
- label - лейбл элемента
- link - ссылка элемента
- subtitle - подзаголовок элемента
- onClick - событие клика
$(function () {
const menu = $('#menu').i3MenuList({
items: [
{
icon: 'fa fa-home',
label: 'Home',
link: '/home',
},
{
icon: 'fa fa-cog',
label: 'Settings',
subtitle: 'Manage your account',
onClick: function (index) {
console.log(`Settings clicked: ${index}`)
},
},
{
icon: 'fa fa-user',
label: 'Profile',
subtitle: 'View and edit your profile',
},
],
})
})
Мессенджер - компонент отображения чата или сообщений по шаблону
- onSend - событие отображения сообщений
$(function () {
const messages = $('#messages').i3Messages({
onSend: function (message) {
// Simulate a response from another person after 1 second.
setTimeout(() => {
messages.addMessage('Other person: ' + message, 'other')
}, 1000)
},
})
})
Панель навигации - Простая панель навигации
- size - размер Navbar'а small,medium,large
- sticky - Прилипать ли при прокрутке
$(function () {
const navbar = $('#navbar').i3Navbar({
size: 'large',
sticky: true,
})
})
Уведомления - простые уведомления, аналогичные пуш-уведомлениям, на мобильных устройствах
- message - текст уведомления
- showCloseButton - показывать кнопку закрытия
- onClick - событие клика
- onClose - событе закрытия
$(function () {
const notification = $('body').i3Notification({
message: 'This is a notification!',
showCloseButton: true,
onClick: function (event) {
console.log('Notification clicked')
},
onClose: function (event) {
console.log('Notification closed')
},
})
$('#show-notification').on('click', function () {
notification.show()
})
})
Боковая панель - простая боковая панель, с возможностью указать сторону появления
- alignment - положение слева\справа
- onClose - событие закрытия
$(function () {
const sidePanel = $('#side-panel').i3SidePanel({
alignment: 'right',
onClose: function () {
console.log('Side panel closed')
},
})
$('#open-side-panel').on('click', function () {
sidePanel.open()
})
})
Подсказка - всплывающая подсказка на элементах в тексте
- content - список содержимого
- placement - положение
- onClick - событие клика
$(function () {
const popover = $('#popover-trigger').i3Popover({
content: ['Item 1', 'Item 2', 'Item 3'],
placement: 'bottom',
onClick: function (index) {
console.log(`List item clicked: ${index}`)
},
})
})
Попап - простое попап окно
- content - Содержимое попапа
- onClose - событие обратного вызова
$(function () {
const popup = $('#open-popup').i3Popup({
content: '<p>This is a popup!</p>',
onClose: function () {
console.log('Popup closed')
},
})
$('#open-popup').on('click', function () {
popup.open()
})
})
Прелоадер - простой прелоадер с таймером
- timeout - таймер скрытия
- onHide - событие обратного вызова
$(function () {
const preloader = $('body').i3Preloader({
timeout: 1000,
onHide: function () {
console.log('Preloader hidden')
},
})
})
Панель прогресса - простая панель, для отображения прогресса
$(function () {
const progressbar = $('#progress').i3Progressbar({
onUpdate: function (value) {
console.log(`Progress updated: ${value}%`)
},
})
$('#increase').on('click', function () {
const currentValue = progressbar.options.value
progressbar.setValue(currentValue + 10)
})
})
Радио - простой список связанных элементов
- name - Имя списка radio элементов
- layout - Тип inline\list
- value - отмеченный элемент по значени.
- items - элементы списка
- onChange - событие обратного вызова
$(function () {
const radio = $('#radio-container').i3Radio({
name: 'my-radio',
layout: 'inline',
value: 'option-2',
items: [
{ label: 'Option 1', value: 'option-1' },
{ label: 'Option 2', value: 'option-2' },
{ label: 'Option 3', value: 'option-3' },
],
onChange: function (value) {
console.log(`Radio value changed: ${value}`)
},
})
})
Слайдер диапазона - простой слайдер диапазона велечин
- min - минимальное значение
- max - максимальное значение
- value - текущее значение
- onChange - собитие изменения
$(function () {
const rangeSlider = $('#range-slider').i3RangeSlider({
min: 0,
max: 100,
value: 50,
onChange: function (value) {
$('#value').text(`Value: ${value}`)
},
})
})
Реактивность - простая реализация реактивности
- data - объект данных, за которыми необходимо следить
- template - анонимная функция-шаблон
- callback - событие обратного вызова при изменении элемента
$(function () {
// Define the data
let data = {
message: 'Hello, world!'
};
// Define the template function
let template = function(data) {
return '<p>' + data.message + '</p>';
};
// Use the plugin to bind the data and the template to an element
$('#myElement').i3Reactivity(data, template, function(newData) {
console.log('The data has changed:', newData);
});
// Change the data
data.message = 'Hello, jQuery!';
});
Панель поиска - простая поисковая строка
- placeholder - Подсказка поисковой строки
- onSearch - обработчик поиска
- results - массив элементов, по которым будет производиться поиск
$(function () {
const searchbar = $('#searchbar').i3Searchbar({
placeholder: 'Search for items...',
onSearch: function (query) {
// Perform search with the query and update the results.
const results = ['Item 1', 'Item 2', 'Item 3'] // Replace this with actual search results.
$('#results').empty()
if (query) {
results.forEach((result) => {
$('#results').append(`<li>${result}</li>`)
})
}
},
})
})
Панель сегментов - простая панель сегментов, может служить табами или переходами панелей
- items - элементы
$(function () {
const segmentedControl = $('#segmented-control').i3SegmentedControl({
items: ['Option 1', 'Option 2', 'Option 3'],
selectedIndex: 1,
onChange: function (index) {
console.log(`Selected index: ${index}`)
},
})
})
Модальный лист - простое модальное окно, открываемое снизу
- content - содержимое модального окна
- onClose - событие закрытия модального окна
$(function () {
const sheetModal = $('#open-sheet-modal').i3SheetModal({
content: '<p>This is a sheet modal!</p>',
onClose: function () {
console.log('Sheet modal closed')
},
})
$('#open-sheet-modal').on('click', function () {
sheetModal.open()
})
})
Поле шага - простое поле счетчик, например для кол-ва товаров в корзине
- min - минимальное значение
- max - максимальное значение
- value - текущее значение
- step - шаг значения
- onChange - обработчик изменения
$(function () {
const stepper = $('#stepper').i3Stepper({
min: 0,
max: 10,
value: 5,
step: 2,
onChange: function (value) {
console.log(`Stepper value changed: ${value}`)
},
})
})
Панель поднавигации - простая дополнительная панель навигации
- items - список элементов
- selectedIndex - индекст активного элемента
- onChange - событие изменения
$(function () {
const subnavbar = $('#subnavbar').i3Subnavbar({
items: ['Option 1', 'Option 2', 'Option 3'],
selectedIndex: 1,
onChange: function (index) {
console.log(`Selected index: ${index}`)
},
})
})
Панель табов - простая панель табов
- items - массив элементов
- icon - класс иконки
- text - лейбл кнопки
- content - содержимое таба
- selectedIndex - активный элемент
- showText - показывать ли лебл
- showIcons - показывать ли иконки
- onChange - событие переключения табов
$(function () {
const tabber = $('#tabber').i3Tabber({
items: [
{ icon: 'fa fa-home', text: 'Tab 1', content: '<p>Content for Tab 1.</p>' },
{ icon: 'fa fa-cog', text: 'Tab 2', content: '<p>Content for Tab 2.</p>' },
{ icon: 'fa fa-user', text: 'Tab 3', content: '<p>Content for Tab 3.</p>' },
],
selectedIndex: 1,
showText: true,
showIcons: true,
onChange: function (index) {
console.log(`Selected index: ${index}`)
},
})
})
Тост - простые уведомления, в нижней части экрана
- message - текст сообщения
- type - тип сообщения
- alignment - положение слева\справа\поцентру
- timeout - время отображения
- onHide - событие скрытия
$(function () {
$('#show-toast').on('click', function () {
const toast = $('body').i3Toast({
message: 'This is a toast message!',
type: 'success',
alignment: 'right',
timeout: 2000,
onHide: function () {
console.log('Toast hidden')
},
})
})
})
Переключатель - простой переключатель вкл\выкл
$(function () {
const toggle = $('#toggle').i3Toggle({
state: true,
onChange: function (state) {
console.log(`Toggle state changed: ${state}`)
},
})
})
Панель инструментов - простая дополнительная панель
- alignment - положение сверху\снизу
- buttons - кноки внутри
- text - лейбл кнопки
- icon - иконка кнопки
- onClick - событие клика
$(function () {
const toolbar = $('#toolbar').toolbar({
alignment: 'bottom',
buttons: [
{ text: 'Button 1', icon: 'fa fa-home' },
{ text: 'Button 2', icon: 'fa fa-cog' },
{ text: 'Button 3', icon: 'fa fa-user' },
],
onClick: function (index) {
console.log(`Button clicked: ${index}`)
},
})
})