@omnisass/library 0.2.0 → 2026.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +13 -0
- package/.omnisass/scripts/bump-version.sh +288 -0
- package/.sassdoc.yaml +21 -0
- package/.vscode/settings.json +17 -0
- package/_configs.scss +10 -45
- package/index.scss +5 -91
- package/modules/utilities/converters/_convert-em2px.scss +3 -49
- package/modules/utilities/converters/_convert-hex2rgb.scss +2 -44
- package/modules/utilities/converters/_convert-hex2rgba.scss +2 -57
- package/modules/utilities/converters/_convert-px2em.scss +3 -62
- package/modules/utilities/converters/_convert-px2rem.scss +3 -62
- package/modules/utilities/converters/_convert-rem2px.scss +3 -62
- package/modules/utilities/converters/_index.scss +10 -0
- package/modules/utilities/getters/_index.scss +23 -0
- package/modules/utilities/getters/color/_get-color-brightness.scss +2 -48
- package/modules/utilities/getters/color/_get-color-darkest.scss +13 -68
- package/modules/utilities/getters/list/_get-list-item-end.scss +2 -29
- package/modules/utilities/getters/list/_get-list-item-start.scss +2 -29
- package/modules/utilities/getters/list/_get-list-item.scss +6 -82
- package/modules/utilities/getters/number/_get-number-from-percent.scss +2 -40
- package/modules/utilities/getters/number/_get-number-height-by-ratio.scss +3 -35
- package/modules/utilities/getters/number/_get-number-max-safe.scss +112 -0
- package/modules/utilities/getters/number/_get-number-max.scss +10 -88
- package/modules/utilities/getters/number/_get-number-min-safe.scss +114 -0
- package/modules/utilities/getters/number/_get-number-min.scss +9 -84
- package/modules/utilities/getters/number/_get-number-percentage-of.scss +2 -58
- package/modules/utilities/getters/number/_get-number-unit.scss +5 -46
- package/modules/utilities/getters/number/_get-number-width-by-ratio.scss +3 -56
- package/modules/utilities/helpers/_index.scss +44 -0
- package/modules/utilities/helpers/color/_color-blend-steps.scss +5 -89
- package/modules/utilities/helpers/color/_color-blend.scss +11 -85
- package/modules/utilities/helpers/color/_color-hue-shift.scss +7 -61
- package/modules/utilities/helpers/color/_color-scale.scss +7 -74
- package/modules/utilities/helpers/color/_color-shade.scss +2 -60
- package/modules/utilities/helpers/color/_color-tint.scss +2 -60
- package/modules/utilities/helpers/color/_color-triad.scss +9 -53
- package/modules/utilities/helpers/list/_list-dedupe.scss +9 -50
- package/modules/utilities/helpers/list/_list-insert-at.scss +16 -86
- package/modules/utilities/helpers/list/_list-merge.scss +1 -1
- package/modules/utilities/helpers/list/_list-remove-at.scss +9 -71
- package/modules/utilities/helpers/list/_list-sum-numbers-safe.scss +17 -81
- package/modules/utilities/helpers/list/_list-sum-numbers.scss +9 -57
- package/modules/utilities/helpers/number/_number-ceil-to.scss +1 -1
- package/modules/utilities/helpers/number/_number-clamp-max.scss +1 -1
- package/modules/utilities/helpers/number/_number-clamp-min.scss +1 -1
- package/modules/utilities/helpers/number/_number-clamp.scss +1 -1
- package/modules/utilities/helpers/number/_number-denormalize.scss +1 -1
- package/modules/utilities/helpers/number/_number-fibonacci.scss +2 -2
- package/modules/utilities/helpers/number/_number-floor-to.scss +1 -1
- package/modules/utilities/helpers/number/_number-format-with-separator.scss +4 -4
- package/modules/utilities/helpers/number/_number-normalize.scss +1 -1
- package/modules/utilities/helpers/number/_number-random-between-int.scss +1 -1
- package/modules/utilities/helpers/number/_number-random-between.scss +1 -1
- package/modules/utilities/helpers/number/_number-range.scss +7 -7
- package/modules/utilities/helpers/number/_number-round-to-nearest.scss +1 -1
- package/modules/utilities/helpers/number/_number-round-to.scss +1 -1
- package/modules/utilities/helpers/number/_number-strip-unit.scss +2 -14
- package/modules/utilities/helpers/string/_string-capitalize.scss +1 -1
- package/modules/utilities/helpers/string/_string-replace.scss +1 -1
- package/modules/utilities/helpers/string/_string-trim-end.scss +2 -2
- package/modules/utilities/helpers/string/_string-trim-start.scss +2 -2
- package/modules/utilities/helpers/string/_string-trim.scss +1 -1
- package/modules/utilities/loggers/_index.scss +6 -0
- package/modules/utilities/validators/_index.scss +38 -0
- package/modules/utilities/validators/{misc/_is-time.scss → _is-time.scss} +2 -2
- package/modules/utilities/validators/color/_is-color-light.scss +1 -1
- package/modules/utilities/validators/color/_is-color-list.scss +1 -1
- package/modules/utilities/validators/list/_is-list-contained.scss +1 -1
- package/modules/utilities/validators/number/_is-int-even.scss +1 -1
- package/modules/utilities/validators/number/_is-int-odd.scss +1 -1
- package/modules/utilities/validators/number/_is-int.scss +1 -1
- package/modules/utilities/validators/number/_is-number-has-unit.scss +1 -1
- package/modules/utilities/validators/number/_is-number-negative.scss +1 -1
- package/modules/utilities/validators/number/_is-number-positive.scss +1 -1
- package/modules/utilities/validators/number/_is-number-unitless.scss +1 -1
- package/modules/utilities/validators/number/_is-number-zero.scss +1 -1
- package/modules/utilities/validators/string/_is-string-contained.scss +25 -25
- package/modules/utilities/validators/string/_is-string-empty.scss +1 -1
- package/modules/utilities/validators/string/_is-string-ending-with.scss +1 -1
- package/modules/utilities/validators/string/_is-string-starting-with.scss +1 -1
- package/modules/utilities/validators/type-of/_is-boolean.scss +1 -1
- package/modules/utilities/validators/type-of/_is-color.scss +1 -1
- package/modules/utilities/validators/type-of/_is-list.scss +1 -1
- package/modules/utilities/validators/type-of/_is-map.scss +1 -1
- package/modules/utilities/validators/type-of/_is-number.scss +1 -1
- package/modules/utilities/validators/type-of/_is-string.scss +1 -1
- package/modules/utilities/validators/type-of/_is-type.scss +1 -1
- package/package.json +5 -6
- package/package.scss +3 -3
- package/playground/index.scss +8 -0
- package/modules/utilities/converters/_convert-camel2kebab.scss +0 -186
- package/modules/utilities/converters/_convert-kebab2camel.scss +0 -232
- package/modules/utilities/converters/_convert-kebab2snake.scss +0 -118
- package/modules/utilities/converters/_convert-snake2kebab.scss +0 -173
- package/modules/utilities/helpers/misc/_url-encode.configs.scss +0 -64
- package/modules/utilities/helpers/misc/_url-encode.scss +0 -148
- package/modules/utilities/loggers/_log-invalid-type.scss +0 -151
- package/modules/utilities/loggers/_log-invalid-value.scss +0 -151
- package/test.md +0 -168
- package/test.scss +0 -405
- package/test.sh +0 -149
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
@use 'sass:list';
|
|
2
|
-
@use '../../loggers/log-invalid-type' as *;
|
|
3
|
-
@use '../../validators/type-of/is-list' as *;
|
|
4
|
-
@use '../../validators/type-of/is-number' as *;
|
|
5
2
|
|
|
6
3
|
/// Удаляет элемент из списка по указанному индексу.
|
|
7
4
|
///
|
|
@@ -23,7 +20,7 @@
|
|
|
23
20
|
/// ---
|
|
24
21
|
/// @name list-remove-at
|
|
25
22
|
/// @group utilities-helpers
|
|
26
|
-
/// @since
|
|
23
|
+
/// @since 0.0.1
|
|
27
24
|
/// @access public
|
|
28
25
|
/// @author Murad Rustamov (therteenten)
|
|
29
26
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -86,75 +83,16 @@
|
|
|
86
83
|
/// является числом.
|
|
87
84
|
@function list-remove-at($list, $index) {
|
|
88
85
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
// или arglist (специальный тип для переменного числа аргументов).
|
|
92
|
-
@if not is-list($list) {
|
|
93
|
-
|
|
94
|
-
// Если $list не является списком, возвращаем ошибку через
|
|
95
|
-
// стандартную функцию логирования. Это предотвращает
|
|
96
|
-
// некорректные вычисления с некорректными данными.
|
|
97
|
-
@return log-invalid-type(
|
|
98
|
-
'list-remove-at',
|
|
99
|
-
$list,
|
|
100
|
-
'$list',
|
|
101
|
-
('list', 'arglist')
|
|
102
|
-
);
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
// Проверка типа второго параметра: ожидается числовое значение индекса.
|
|
107
|
-
// $index определяет позицию элемента, который нужно удалить из списка.
|
|
108
|
-
@else if not is-number($index) {
|
|
109
|
-
|
|
110
|
-
// Если $index не является числом, возвращаем ошибку.
|
|
111
|
-
// Проверка выполняется только если $list прошел валидацию.
|
|
112
|
-
@return log-invalid-type(
|
|
113
|
-
'list-remove-at',
|
|
114
|
-
$index,
|
|
115
|
-
'$index',
|
|
116
|
-
'number'
|
|
117
|
-
);
|
|
118
|
-
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// Все параметры прошли валидацию - выполняем удаление элемента.
|
|
122
|
-
@else {
|
|
123
|
-
|
|
124
|
-
// Инициализация переменной для хранения результата.
|
|
125
|
-
// $-result будет содержать новый список без удаленного элемента.
|
|
126
|
-
$-result: ();
|
|
127
|
-
|
|
128
|
-
// Определение длины исходного списка.
|
|
129
|
-
// Функция list.length() возвращает количество элементов в списке.
|
|
130
|
-
$-length: list.length($list);
|
|
131
|
-
|
|
132
|
-
// Цикл по всем элементам исходного списка.
|
|
133
|
-
// Переменная $i принимает значения от 1 до $-length включительно.
|
|
134
|
-
@for $i from 1 through $-length {
|
|
135
|
-
|
|
136
|
-
// Проверка: не является ли текущий индекс целевым индексом удаления.
|
|
137
|
-
@if $i != $index {
|
|
138
|
-
|
|
139
|
-
// Если текущий индекс НЕ равен индексу удаления,
|
|
140
|
-
// добавляем элемент в результат.
|
|
141
|
-
// - Функция list.nth() извлекает элемент списка по
|
|
142
|
-
// указанному индексу.
|
|
143
|
-
// - Функция list.append() добавляет элемент в конец
|
|
144
|
-
// списка результата.
|
|
145
|
-
$-result: list.append($-result, list.nth($list, $i));
|
|
146
|
-
|
|
147
|
-
}
|
|
86
|
+
$-result: ();
|
|
87
|
+
$-length: list.length($list);
|
|
148
88
|
|
|
89
|
+
@for $-i from 1 through $-length {
|
|
90
|
+
@if $-i != $index {
|
|
91
|
+
$-result: list.append($-result, list.nth($list, $-i));
|
|
149
92
|
}
|
|
150
|
-
|
|
151
|
-
// Возвращаем новый список без удаленного элемента.
|
|
152
|
-
// Если индекс был в пределах длины списка (1 ≤ $index ≤ $-length),
|
|
153
|
-
// соответствующий элемент будет пропущен. Если индекс вне диапазона,
|
|
154
|
-
// исходный список вернется без изменений. Порядок оставшихся
|
|
155
|
-
// элементов сохраняется.
|
|
156
|
-
@return $-result;
|
|
157
|
-
|
|
158
93
|
}
|
|
159
94
|
|
|
95
|
+
@return $-result;
|
|
96
|
+
|
|
160
97
|
}
|
|
98
|
+
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
@use 'sass:math';
|
|
2
2
|
@use 'sass:meta';
|
|
3
|
-
@use '../../
|
|
4
|
-
@use '../../validators/type-of/is-list' as *;
|
|
5
|
-
@use '../../validators/type-of/is-number' as *;
|
|
3
|
+
@use '../../validators' as validators; // need type-of/is-number
|
|
6
4
|
|
|
7
5
|
/// Безопасно суммирует числовые значения в списке с
|
|
8
6
|
/// проверкой единиц измерения.
|
|
@@ -31,7 +29,7 @@
|
|
|
31
29
|
/// ---
|
|
32
30
|
/// @name list-sum-numbers-safe
|
|
33
31
|
/// @group utilities-helpers
|
|
34
|
-
/// @since
|
|
32
|
+
/// @since 0.0.1
|
|
35
33
|
/// @access public
|
|
36
34
|
/// @author Murad Rustamov (therteenten)
|
|
37
35
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -86,90 +84,28 @@
|
|
|
86
84
|
/// чисел с несовместимыми единицами измерения.
|
|
87
85
|
@function list-sum-numbers-safe($list) {
|
|
88
86
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
// или arglist (специальный тип для переменного числа аргументов).
|
|
92
|
-
@if not is-list($list) {
|
|
87
|
+
$-sum: 0;
|
|
88
|
+
$-first-unit: null;
|
|
93
89
|
|
|
94
|
-
|
|
95
|
-
// стандартную функцию логирования. Это предотвращает
|
|
96
|
-
// некорректные вычисления с некорректными данными.
|
|
97
|
-
@return log-invalid-type(
|
|
98
|
-
'list-sum-numbers-safe',
|
|
99
|
-
$list,
|
|
100
|
-
'$list',
|
|
101
|
-
('list', 'arglist')
|
|
102
|
-
);
|
|
90
|
+
@each $-item in $list {
|
|
103
91
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
// Основная логика выполняется только если $list является
|
|
107
|
-
// корректным списком или arglist.
|
|
108
|
-
@else {
|
|
109
|
-
|
|
110
|
-
// Инициализация переменной для хранения суммы чисел.
|
|
111
|
-
// $-sum будет содержать итоговую сумму совместимых числовых элементов.
|
|
112
|
-
$-sum: 0;
|
|
113
|
-
|
|
114
|
-
// Переменная для хранения единицы измерения первого найденного числа.
|
|
115
|
-
// Используется для проверки совместимости единиц измерения
|
|
116
|
-
// всех последующих чисел.
|
|
117
|
-
$-first-unit: null;
|
|
118
|
-
|
|
119
|
-
// Итерация по всем элементам исходного списка.
|
|
120
|
-
// Переменная $-item содержит текущий обрабатываемый элемент.
|
|
121
|
-
@each $-item in $list {
|
|
122
|
-
|
|
123
|
-
// Проверка: является ли текущий элемент числом.
|
|
124
|
-
// Функция is-number() возвращает true для числовых значений.
|
|
125
|
-
@if is-number($-item) {
|
|
126
|
-
|
|
127
|
-
// Проверка: является ли это первым найденным числом в списке.
|
|
128
|
-
@if $-first-unit == null {
|
|
129
|
-
|
|
130
|
-
// Если это первое число:
|
|
131
|
-
// 1. Сохраняем его единицу измерения для последующей проверки
|
|
132
|
-
// Функция math.unit() возвращает единицу измерения числа как строку.
|
|
133
|
-
// 2. Инициализируем сумму значением этого числа
|
|
134
|
-
$-first-unit: math.unit($-item);
|
|
135
|
-
$-sum: $-item;
|
|
136
|
-
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// Проверка: совместимы ли единицы измерения текущего числа
|
|
140
|
-
// с единицей измерения первого числа.
|
|
141
|
-
// Условие выполняется, если:
|
|
142
|
-
// 1. Единицы измерения совпадают (math.unit($-item) == $-first-unit)
|
|
143
|
-
// 2. Текущее число безразмерное (math.unit($-item) == '')
|
|
144
|
-
@else if math.unit($-item) == $-first-unit or math.unit($-item) == '' {
|
|
145
|
-
|
|
146
|
-
// Если единицы измерения совместимы, добавляем число к сумме.
|
|
147
|
-
// Оператор + в Sass автоматически проверяет совместимость единиц,
|
|
148
|
-
// но мы уже выполнили проверку выше для безопасности.
|
|
149
|
-
$-sum: $-sum + $-item;
|
|
150
|
-
|
|
151
|
-
} @else {
|
|
152
|
-
|
|
153
|
-
// Если единицы измерения не совместимы:
|
|
154
|
-
// Выводим предупреждение в консоль с информацией о пропущенном элементе.
|
|
155
|
-
// Функция meta.inspect() преобразует значение в читаемую строку.
|
|
156
|
-
// Функция math.unit() возвращает единицу измерения числа.
|
|
157
|
-
// Это предупреждение помогает выявить потенциальные ошибки в данных.
|
|
158
|
-
@warn "Пропускаю элемент «#{meta.inspect($-item)}»: единица «#{math.unit($-item)}» несовместима с «#{$-first-unit}»!";
|
|
159
|
-
|
|
160
|
-
}
|
|
92
|
+
@if validators.is-number($-item) {
|
|
161
93
|
|
|
94
|
+
@if $-first-unit == null {
|
|
95
|
+
$-first-unit: math.unit($-item);
|
|
96
|
+
$-sum: $-item;
|
|
97
|
+
} @else if math.unit($-item) == $-first-unit or math.unit($-item) == '' {
|
|
98
|
+
$-sum: $-sum + $-item;
|
|
99
|
+
} @else {
|
|
100
|
+
@warn "⚠️ Пропускаю элемент «#{meta.inspect($-item)}»: единица «#{math.unit($-item)}» несовместима с «#{$-first-unit}»!";
|
|
162
101
|
}
|
|
163
102
|
|
|
164
103
|
}
|
|
165
104
|
|
|
166
|
-
// Возвращаем итоговую сумму совместимых числовых элементов.
|
|
167
|
-
// Если в списке не было чисел или все числа были пропущены из-за
|
|
168
|
-
// несовместимости единиц измерения, возвращается 0 (начальное значение).
|
|
169
|
-
// Единица измерения результата соответствует единице измерения
|
|
170
|
-
// первого добавленного числа.
|
|
171
|
-
@return $-sum;
|
|
172
|
-
|
|
173
105
|
}
|
|
174
106
|
|
|
107
|
+
@return $-sum;
|
|
108
|
+
|
|
175
109
|
}
|
|
110
|
+
|
|
111
|
+
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
@use '../../
|
|
2
|
-
@use '../../validators/type-of/is-list' as *;
|
|
3
|
-
@use '../../validators/type-of/is-number' as *;
|
|
1
|
+
@use '../../validators' as validators; // need type-of/is-number
|
|
4
2
|
|
|
5
3
|
/// Суммирует все числовые значения в списке.
|
|
6
4
|
///
|
|
@@ -19,7 +17,7 @@
|
|
|
19
17
|
/// ---
|
|
20
18
|
/// @name list-sum-numbers
|
|
21
19
|
/// @group utilities-helpers
|
|
22
|
-
/// @since
|
|
20
|
+
/// @since 0.0.1
|
|
23
21
|
/// @access public
|
|
24
22
|
/// @author Murad Rustamov (therteenten)
|
|
25
23
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -68,61 +66,15 @@
|
|
|
68
66
|
/// (например, px + em).
|
|
69
67
|
@function list-sum-numbers($list) {
|
|
70
68
|
|
|
71
|
-
|
|
72
|
-
// Функция is-list() проверяет, является ли $list валидным списком
|
|
73
|
-
// или arglist (специальный тип для переменного числа аргументов).
|
|
74
|
-
@if not is-list($list) {
|
|
75
|
-
|
|
76
|
-
// Если $list не является списком, возвращаем ошибку через
|
|
77
|
-
// стандартную функцию логирования. Это предотвращает
|
|
78
|
-
// некорректные вычисления с некорректными данными.
|
|
79
|
-
@return log-invalid-type(
|
|
80
|
-
'list-sum-numbers',
|
|
81
|
-
$list,
|
|
82
|
-
'$list',
|
|
83
|
-
('list', 'arglist')
|
|
84
|
-
);
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// Основная логика выполняется только если $list является
|
|
89
|
-
// корректным списком или arglist.
|
|
90
|
-
@else {
|
|
91
|
-
|
|
92
|
-
// Инициализация переменной для хранения суммы чисел.
|
|
93
|
-
// $-sum будет содержать итоговую сумму всех числовых элементов
|
|
94
|
-
// в списке. Начальное значение 0 гарантирует корректный результат
|
|
95
|
-
// даже для пустых списков или списков без числовых элементов.
|
|
96
|
-
$-sum: 0;
|
|
97
|
-
|
|
98
|
-
// Итерация по всем элементам исходного списка.
|
|
99
|
-
// Переменная $-item содержит текущий обрабатываемый элемент.
|
|
100
|
-
@each $-item in $list {
|
|
101
|
-
|
|
102
|
-
// Проверка: является ли текущий элемент числом.
|
|
103
|
-
// Функция is-number() возвращает true для числовых значений,
|
|
104
|
-
// включая числа с единицами измерения (px, rem, em и т.д.)
|
|
105
|
-
// и безразмерные числа.
|
|
106
|
-
@if is-number($-item) {
|
|
107
|
-
|
|
108
|
-
// Если элемент является числом, добавляем его к общей сумме.
|
|
109
|
-
// Оператор + в Sass автоматически складывает числа,
|
|
110
|
-
// учитывая их единицы измерения. Если единицы измерения
|
|
111
|
-
// несовместимы (например, px + em), Sass вызовет ошибку
|
|
112
|
-
// компиляции на этом этапе.
|
|
113
|
-
$-sum: $-sum + $-item;
|
|
114
|
-
|
|
115
|
-
}
|
|
69
|
+
$-sum: 0;
|
|
116
70
|
|
|
71
|
+
@each $-item in $list {
|
|
72
|
+
@if validators.is-number($-item) {
|
|
73
|
+
$-sum: $-sum + $-item;
|
|
117
74
|
}
|
|
118
|
-
|
|
119
|
-
// Возвращаем итоговую сумму всех числовых элементов.
|
|
120
|
-
// Если в списке не было чисел, возвращается 0 (начальное значение).
|
|
121
|
-
// Если были числа с единицами измерения, результат будет иметь
|
|
122
|
-
// те же единицы измерения, что и первое найденное число
|
|
123
|
-
// (при условии совместимости всех единиц).
|
|
124
|
-
@return $-sum;
|
|
125
|
-
|
|
126
75
|
}
|
|
127
76
|
|
|
77
|
+
@return $-sum;
|
|
78
|
+
|
|
128
79
|
}
|
|
80
|
+
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
/// ---
|
|
21
21
|
/// @name number-ceil-to
|
|
22
22
|
/// @group utilities-helpers
|
|
23
|
-
/// @since
|
|
23
|
+
/// @since 0.0.1
|
|
24
24
|
/// @access public
|
|
25
25
|
/// @author Murad Rustamov (therteenten)
|
|
26
26
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
/// ---
|
|
27
27
|
/// @name number-clamp-max
|
|
28
28
|
/// @group utilities-helpers
|
|
29
|
-
/// @since
|
|
29
|
+
/// @since 0.0.1
|
|
30
30
|
/// @access public
|
|
31
31
|
/// @author Murad Rustamov (therteenten)
|
|
32
32
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
/// ---
|
|
35
35
|
/// @name number-clamp-min
|
|
36
36
|
/// @group utilities-helpers
|
|
37
|
-
/// @since
|
|
37
|
+
/// @since 0.0.1
|
|
38
38
|
/// @access public
|
|
39
39
|
/// @author Murad Rustamov (therteenten)
|
|
40
40
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
/// ---
|
|
38
38
|
/// @name number-clamp
|
|
39
39
|
/// @group utilities-helpers
|
|
40
|
-
/// @since
|
|
40
|
+
/// @since 0.0.1
|
|
41
41
|
/// @access public
|
|
42
42
|
/// @author Murad Rustamov (therteenten)
|
|
43
43
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
/// ---
|
|
37
37
|
/// @name number-denormalize
|
|
38
38
|
/// @group utilities-helpers
|
|
39
|
-
/// @since
|
|
39
|
+
/// @since 0.0.1
|
|
40
40
|
/// @access public
|
|
41
41
|
/// @author Murad Rustamov (therteenten)
|
|
42
42
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
/// ---
|
|
26
26
|
/// @name number-fibonacci
|
|
27
27
|
/// @group utilities-helpers
|
|
28
|
-
/// @since
|
|
28
|
+
/// @since 0.0.1
|
|
29
29
|
/// @access public
|
|
30
30
|
/// @author Murad Rustamov (therteenten)
|
|
31
31
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -221,7 +221,7 @@
|
|
|
221
221
|
$-a: 0;
|
|
222
222
|
$-b: 1;
|
|
223
223
|
|
|
224
|
-
@for
|
|
224
|
+
@for $-i from 1 through $n {
|
|
225
225
|
|
|
226
226
|
$-result: list.append($-result, $-b);
|
|
227
227
|
$-temp: $-a + $-b;
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
/// ---
|
|
22
22
|
/// @name number-floor-to
|
|
23
23
|
/// @group utilities-helpers
|
|
24
|
-
/// @since
|
|
24
|
+
/// @since 0.0.1
|
|
25
25
|
/// @access public
|
|
26
26
|
/// @author Murad Rustamov (therteenten)
|
|
27
27
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
/// ---
|
|
26
26
|
/// @name number-format-with-separator
|
|
27
27
|
/// @group utilities-helpers
|
|
28
|
-
/// @since
|
|
28
|
+
/// @since 0.0.1
|
|
29
29
|
/// @access public
|
|
30
30
|
/// @author Murad Rustamov (therteenten)
|
|
31
31
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -100,13 +100,13 @@
|
|
|
100
100
|
$-length: string.length($-str);
|
|
101
101
|
$-counter: 0;
|
|
102
102
|
|
|
103
|
-
@for
|
|
103
|
+
@for $-i from $-length through 1 {
|
|
104
104
|
|
|
105
|
-
$char: string.slice($-str,
|
|
105
|
+
$char: string.slice($-str, $-i, $-i);
|
|
106
106
|
$-result: $char + $-result;
|
|
107
107
|
$-counter: $-counter + 1;
|
|
108
108
|
|
|
109
|
-
@if $-counter == 3 and
|
|
109
|
+
@if $-counter == 3 and $-i > 1 {
|
|
110
110
|
$-result: $separator + $-result;
|
|
111
111
|
$-counter: 0;
|
|
112
112
|
}
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
/// ---
|
|
40
40
|
/// @name number-normalize
|
|
41
41
|
/// @group utilities-helpers
|
|
42
|
-
/// @since
|
|
42
|
+
/// @since 0.0.1
|
|
43
43
|
/// @access public
|
|
44
44
|
/// @author Murad Rustamov (therteenten)
|
|
45
45
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
/// ---
|
|
34
34
|
/// @name number-random-between-int
|
|
35
35
|
/// @group utilities-helpers
|
|
36
|
-
/// @since
|
|
36
|
+
/// @since 0.0.1
|
|
37
37
|
/// @access public
|
|
38
38
|
/// @author Murad Rustamov (therteenten)
|
|
39
39
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
/// ---
|
|
37
37
|
/// @name number-random-between
|
|
38
38
|
/// @group utilities-helpers
|
|
39
|
-
/// @since
|
|
39
|
+
/// @since 0.0.1
|
|
40
40
|
/// @access public
|
|
41
41
|
/// @author Murad Rustamov (therteenten)
|
|
42
42
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
/// ---
|
|
23
23
|
/// @name number-range
|
|
24
24
|
/// @group utilities-helpers
|
|
25
|
-
/// @since
|
|
25
|
+
/// @since 0.0.1
|
|
26
26
|
/// @access public
|
|
27
27
|
/// @author Murad Rustamov (therteenten)
|
|
28
28
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -246,18 +246,18 @@
|
|
|
246
246
|
$-result: ();
|
|
247
247
|
|
|
248
248
|
@if $from < $to {
|
|
249
|
-
@for
|
|
250
|
-
@if (
|
|
249
|
+
@for $-i from $from through $to {
|
|
250
|
+
@if ($-i - $from) % $step == 0 {
|
|
251
251
|
|
|
252
|
-
$-result: list.append($-result,
|
|
252
|
+
$-result: list.append($-result, $-i);
|
|
253
253
|
|
|
254
254
|
}
|
|
255
255
|
}
|
|
256
256
|
} @else {
|
|
257
|
-
@for
|
|
258
|
-
@if ($from -
|
|
257
|
+
@for $-i from $from through $to {
|
|
258
|
+
@if ($from - $-i) % $step == 0 {
|
|
259
259
|
|
|
260
|
-
$-result: list.append($-result,
|
|
260
|
+
$-result: list.append($-result, $-i);
|
|
261
261
|
|
|
262
262
|
}
|
|
263
263
|
}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
/// ---
|
|
26
26
|
/// @name number-round-to-nearest
|
|
27
27
|
/// @group utilities-helpers
|
|
28
|
-
/// @since
|
|
28
|
+
/// @since 0.0.1
|
|
29
29
|
/// @access public
|
|
30
30
|
/// @author Murad Rustamov (therteenten)
|
|
31
31
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
/// ---
|
|
22
22
|
/// @name number-round-to
|
|
23
23
|
/// @group utilities-helpers
|
|
24
|
-
/// @since
|
|
24
|
+
/// @since 0.0.1
|
|
25
25
|
/// @access public
|
|
26
26
|
/// @author Murad Rustamov (therteenten)
|
|
27
27
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
@use 'sass:math';
|
|
2
|
-
@use '../../loggers/log-invalid-type' as *;
|
|
3
|
-
@use '../../validators/type-of/is-number' as *;
|
|
4
2
|
|
|
5
3
|
/// Удаляет единицы измерения из числа, возвращая
|
|
6
4
|
/// безразмерное значение.
|
|
@@ -29,7 +27,7 @@
|
|
|
29
27
|
/// ---
|
|
30
28
|
/// @name number-strip-unit
|
|
31
29
|
/// @group utilities-helpers
|
|
32
|
-
/// @since
|
|
30
|
+
/// @since 0.0.1
|
|
33
31
|
/// @access public
|
|
34
32
|
/// @author Sindre Sorhus
|
|
35
33
|
/// @author Murad Rustamov (therteenten) [адаптация]
|
|
@@ -83,15 +81,5 @@
|
|
|
83
81
|
/// нечисловое значение, так как математические операции
|
|
84
82
|
/// Sass требуют числовых операндов.
|
|
85
83
|
@function number-strip-unit($value) {
|
|
86
|
-
|
|
87
|
-
$-result: 'null';
|
|
88
|
-
|
|
89
|
-
@if is-number($value) {
|
|
90
|
-
$-result: math.div($value, $value * 0 + 1);
|
|
91
|
-
} @else {
|
|
92
|
-
@debug log-invalid-type('number-strip-unit', $value, '$value', 'number');
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
@return $-result;
|
|
96
|
-
|
|
84
|
+
@return math.div($value, $value * 0 + 1);
|
|
97
85
|
}
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
/// ---
|
|
31
31
|
/// @name string-capitalize
|
|
32
32
|
/// @group utilities-helpers
|
|
33
|
-
/// @since
|
|
33
|
+
/// @since 0.0.1
|
|
34
34
|
/// @access public
|
|
35
35
|
/// @author Murad Rustamov (therteenten)
|
|
36
36
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
/// ---
|
|
18
18
|
/// @name string-replace
|
|
19
19
|
/// @group utilities-helpers
|
|
20
|
-
/// @since
|
|
20
|
+
/// @since 0.0.1
|
|
21
21
|
/// @access public
|
|
22
22
|
/// @author Murad Rustamov (therteenten)
|
|
23
23
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
/// ---
|
|
18
18
|
/// @name string-trim-end
|
|
19
19
|
/// @group utilities-helpers
|
|
20
|
-
/// @since
|
|
20
|
+
/// @since 0.0.1
|
|
21
21
|
/// @access public
|
|
22
22
|
/// @author Murad Rustamov (therteenten)
|
|
23
23
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
@return $string;
|
|
61
|
-
|
|
61
|
+
|
|
62
62
|
}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
/// ---
|
|
18
18
|
/// @name string-trim-start
|
|
19
19
|
/// @group utilities-helpers
|
|
20
|
-
/// @since
|
|
20
|
+
/// @since 0.0.1
|
|
21
21
|
/// @access public
|
|
22
22
|
/// @author Murad Rustamov (therteenten)
|
|
23
23
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
@return $string;
|
|
61
|
-
|
|
61
|
+
|
|
62
62
|
}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
/// ---
|
|
18
18
|
/// @name string-trim
|
|
19
19
|
/// @group utilities-helpers
|
|
20
|
-
/// @since
|
|
20
|
+
/// @since 0.0.1
|
|
21
21
|
/// @access public
|
|
22
22
|
/// @author Murad Rustamov (therteenten)
|
|
23
23
|
/// @link https://sourcecraft.dev/users/therteenten/overview SourceCraft - therteenten
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
////
|
|
2
|
+
/// @group utilities-validators
|
|
3
|
+
////
|
|
4
|
+
|
|
5
|
+
// Colors
|
|
6
|
+
@forward 'color/is-color-light';
|
|
7
|
+
@forward 'color/is-color-list';
|
|
8
|
+
|
|
9
|
+
// List
|
|
10
|
+
@forward 'list/is-list-contained';
|
|
11
|
+
|
|
12
|
+
// Number
|
|
13
|
+
@forward 'number/is-int';
|
|
14
|
+
@forward 'number/is-int-even';
|
|
15
|
+
@forward 'number/is-int-odd';
|
|
16
|
+
@forward 'number/is-number-has-unit';
|
|
17
|
+
@forward 'number/is-number-negative';
|
|
18
|
+
@forward 'number/is-number-positive';
|
|
19
|
+
@forward 'number/is-number-unitless';
|
|
20
|
+
@forward 'number/is-number-zero';
|
|
21
|
+
|
|
22
|
+
// String
|
|
23
|
+
@forward 'string/is-string-contained';
|
|
24
|
+
@forward 'string/is-string-empty';
|
|
25
|
+
@forward 'string/is-string-ending-with';
|
|
26
|
+
@forward 'string/is-string-starting-with';
|
|
27
|
+
|
|
28
|
+
// Type-of
|
|
29
|
+
@forward 'type-of/is-boolean';
|
|
30
|
+
@forward 'type-of/is-color';
|
|
31
|
+
@forward 'type-of/is-list';
|
|
32
|
+
@forward 'type-of/is-map';
|
|
33
|
+
@forward 'type-of/is-number';
|
|
34
|
+
@forward 'type-of/is-string';
|
|
35
|
+
@forward 'type-of/is-type';
|
|
36
|
+
|
|
37
|
+
// Other
|
|
38
|
+
@forward 'is-time';
|