@feugene/granularity 0.48.0 → 0.49.0
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/README.md +3 -3
- package/dist/chunks/{config-2vrOFn2f.js → config-AKpLyIGD.js} +2 -2
- package/dist/chunks/{config-2vrOFn2f.js.map → config-AKpLyIGD.js.map} +1 -1
- package/dist/chunks/config-BBtBQE3s.js +108 -0
- package/dist/chunks/config-BBtBQE3s.js.map +1 -0
- package/dist/chunks/{config-BscVxZR3.js → config-DF1ezU6y.js} +1 -1
- package/dist/chunks/{config-BscVxZR3.js.map → config-DF1ezU6y.js.map} +1 -1
- package/dist/chunks/config-MUkhktTP.js +267 -0
- package/dist/chunks/config-MUkhktTP.js.map +1 -0
- package/dist/chunks/{en-Bxyn5lW7.js → en-CsQUoBS2.js} +5 -1
- package/dist/chunks/en-CsQUoBS2.js.map +1 -0
- package/dist/chunks/{es-Dtl-a7ui.js → es-9nbkPvdA.js} +5 -1
- package/dist/chunks/es-9nbkPvdA.js.map +1 -0
- package/dist/chunks/{es-Bj_vc18Z.js → es-DrUz5J6I.js} +3 -3
- package/dist/chunks/{es-Bj_vc18Z.js.map → es-DrUz5J6I.js.map} +1 -1
- package/dist/chunks/{generated-hELWB0gZ.js → generated-CxvC5O0V.js} +42 -0
- package/dist/chunks/{generated-hELWB0gZ.js.map → generated-CxvC5O0V.js.map} +1 -1
- package/dist/chunks/{grBadgeStyles-DV0DrAew.js → grBadgeStyles-D51AXbj5.js} +57 -1
- package/dist/chunks/grBadgeStyles-D51AXbj5.js.map +1 -0
- package/dist/chunks/{grChipStyles-DcDyxAL0.js → grChipStyles-CA9Wj1_E.js} +1 -1
- package/dist/chunks/{grChipStyles-DcDyxAL0.js.map → grChipStyles-CA9Wj1_E.js.map} +1 -1
- package/dist/chunks/{granular-provider-BOQp7N5o.js → granular-provider-B6xomapW.js} +5 -3
- package/dist/chunks/granular-provider-B6xomapW.js.map +1 -0
- package/dist/chunks/{ru-hrB4I1u_.js → ru-88i1WG0b.js} +5 -1
- package/dist/chunks/ru-88i1WG0b.js.map +1 -0
- package/dist/chunks/{safelist-x8USecK8.js → safelist-CSfynUC1.js} +5 -1
- package/dist/chunks/safelist-CSfynUC1.js.map +1 -0
- package/dist/components/GrAutocomplete/chunks/{GrAutocomplete-C-uovdv8.js → GrAutocomplete-Chhw65pI.js} +2 -2
- package/dist/components/GrAutocomplete/chunks/{GrAutocomplete-C-uovdv8.js.map → GrAutocomplete-Chhw65pI.js.map} +1 -1
- package/dist/components/GrAutocomplete/index.js +1 -1
- package/dist/components/GrBadge/chunks/GrBadge-C42KLyUD.js +71 -0
- package/dist/components/GrBadge/chunks/GrBadge-C42KLyUD.js.map +1 -0
- package/dist/components/GrBadge/index.js +3 -3
- package/dist/components/GrBadge/styles.css +1 -1
- package/dist/components/GrChip/chunks/{GrChip-CKqyzYcv.js → GrChip-DoyS1Dr4.js} +1 -1
- package/dist/components/GrChip/chunks/{GrChip-CKqyzYcv.js.map → GrChip-DoyS1Dr4.js.map} +1 -1
- package/dist/components/GrChip/index.js +2 -2
- package/dist/components/GrInputTag/chunks/{GrInputTag-CO0YU-ok.js → GrInputTag-qnRdAZnn.js} +2 -2
- package/dist/components/GrInputTag/chunks/{GrInputTag-CO0YU-ok.js.map → GrInputTag-qnRdAZnn.js.map} +1 -1
- package/dist/components/GrInputTag/index.js +1 -1
- package/dist/components/GrOtpInput/chunks/GrOtpInput-B_Q-RDLw.js +419 -0
- package/dist/components/GrOtpInput/chunks/GrOtpInput-B_Q-RDLw.js.map +1 -0
- package/dist/components/GrOtpInput/index.js +3 -0
- package/dist/components/GrOtpInput/styles.css +1 -0
- package/dist/components/GrPagination/chunks/{GrPagination-BbaF5eXk.js → GrPagination-CMrLPzvL.js} +1 -1
- package/dist/components/GrPagination/chunks/{GrPagination-BbaF5eXk.js.map → GrPagination-CMrLPzvL.js.map} +1 -1
- package/dist/components/GrPagination/index.js +1 -1
- package/dist/components/GrSelect/chunks/{GrSelect-0iI4wdR_.js → GrSelect-DvSq-nV-.js} +2 -2
- package/dist/components/GrSelect/chunks/{GrSelect-0iI4wdR_.js.map → GrSelect-DvSq-nV-.js.map} +1 -1
- package/dist/components/GrSelect/index.js +1 -1
- package/dist/components/GrSwitch/chunks/{GrSwitch-CriHWT2A.js → GrSwitch-D7X42uIA.js} +61 -7
- package/dist/components/GrSwitch/chunks/GrSwitch-D7X42uIA.js.map +1 -0
- package/dist/components/GrSwitch/index.js +2 -2
- package/dist/granular-provider-node.js +1 -1
- package/dist/granular-provider.js +1 -1
- package/dist/i18n/all.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/index.js +14 -13
- package/dist/theme.js +1 -1
- package/dist/tokens.js +1 -1
- package/dist/types/components/GrBadge/GrBadge.vue.d.ts +15 -1
- package/dist/types/components/GrBadge/grBadgeStyles.d.ts +57 -0
- package/dist/types/components/GrBadge/index.d.ts +1 -1
- package/dist/types/components/GrOtpInput/GrOtpInput.vue.d.ts +164 -0
- package/dist/types/components/GrOtpInput/config.d.ts +1 -0
- package/dist/types/components/GrOtpInput/defaults.d.ts +15 -0
- package/dist/types/components/GrOtpInput/grOtpInputStyles.d.ts +62 -0
- package/dist/types/components/GrOtpInput/index.d.ts +9 -0
- package/dist/types/components/GrOtpInput/otpValue.d.ts +71 -0
- package/dist/types/components/GrOtpInput/safelist.d.ts +7 -0
- package/dist/types/components/GrSwitch/GrSwitch.vue.d.ts +42 -4
- package/dist/types/components/GrSwitch/defaults.d.ts +2 -0
- package/dist/types/components/GrSwitch/grSwitchStyles.d.ts +129 -25
- package/dist/types/components/GrSwitch/index.d.ts +1 -1
- package/dist/types/components/GrSwitch/safelist.d.ts +4 -3
- package/dist/types/granular-provider/shared.d.ts +1 -0
- package/dist/types/i18n/messages/en.d.ts +4 -0
- package/dist/types/i18n/messages/es.d.ts +4 -0
- package/dist/types/i18n/messages/ru.d.ts +4 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/web-types.json +254 -8
- package/package.json +5 -1
- package/dist/chunks/config-Yy67uWHY.js +0 -140
- package/dist/chunks/config-Yy67uWHY.js.map +0 -1
- package/dist/chunks/en-Bxyn5lW7.js.map +0 -1
- package/dist/chunks/es-Dtl-a7ui.js.map +0 -1
- package/dist/chunks/grBadgeStyles-DV0DrAew.js.map +0 -1
- package/dist/chunks/granular-provider-BOQp7N5o.js.map +0 -1
- package/dist/chunks/ru-hrB4I1u_.js.map +0 -1
- package/dist/chunks/safelist-x8USecK8.js.map +0 -1
- package/dist/components/GrBadge/chunks/GrBadge-DBeQXEir.js +0 -47
- package/dist/components/GrBadge/chunks/GrBadge-DBeQXEir.js.map +0 -1
- package/dist/components/GrSwitch/chunks/GrSwitch-CriHWT2A.js.map +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as GrSelect_default } from "./chunks/GrSelect-
|
|
1
|
+
import { t as GrSelect_default } from "./chunks/GrSelect-DvSq-nV-.js";
|
|
2
2
|
import { n as grSelectSafelist, t as grSelectConfig } from "../../chunks/config--t2dxj0t.js";
|
|
3
3
|
export { GrSelect_default as GrSelect, GrSelect_default as default, grSelectConfig, grSelectSafelist };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { a as useGrComponentSize } from "../../../chunks/context-CPMRfwVr.js";
|
|
1
|
+
import { a as useGrComponentSize, i as useGrComponentProp } from "../../../chunks/context-CPMRfwVr.js";
|
|
2
2
|
import { n as useGranularityTranslations } from "../../../chunks/granularityI18n-BC5zsj_d.js";
|
|
3
3
|
import { t as loader_circle_default } from "../../../chunks/loader-circle-CfVLz7lb.js";
|
|
4
4
|
import { n as useGrFormFieldContext } from "../../../chunks/context-DdNIxa1w.js";
|
|
5
5
|
import { useGrFormControl } from "../../../composables/useGrFormControl.js";
|
|
6
|
-
import { a as grSwitchSpinnerClass, i as grSwitchRootClass, o as
|
|
7
|
-
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeProps, normalizeClass, normalizeStyle, openBlock, ref, renderSlot, toDisplayString, unref } from "vue";
|
|
6
|
+
import { a as grSwitchSpinnerClass, c as grSwitchThumbIconClass, d as stateTextGhostClass, f as stateTextRoom, i as grSwitchRootClass, l as grSwitchTrackClass, o as grSwitchStateTextClass, p as stateTextStackClass, r as grSwitchLabelClass, s as grSwitchThumbClass, u as isGrSwitchStateTextSize } from "../../../chunks/config-MUkhktTP.js";
|
|
7
|
+
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeProps, normalizeClass, normalizeStyle, openBlock, ref, renderSlot, toDisplayString, unref, useSlots, watchEffect } from "vue";
|
|
8
8
|
//#region src/components/GrSwitch/GrSwitch.vue?vue&type=script&setup=true&lang.ts
|
|
9
9
|
var _hoisted_1 = [
|
|
10
10
|
"name",
|
|
@@ -65,7 +65,17 @@ var GrSwitch_default = /* @__PURE__ */ defineComponent({
|
|
|
65
65
|
value: { default: "on" },
|
|
66
66
|
form: { default: void 0 },
|
|
67
67
|
activeBackgroundColor: { default: void 0 },
|
|
68
|
-
inactiveBackgroundColor: { default: void 0 }
|
|
68
|
+
inactiveBackgroundColor: { default: void 0 },
|
|
69
|
+
showStateText: {
|
|
70
|
+
type: Boolean,
|
|
71
|
+
default: void 0
|
|
72
|
+
},
|
|
73
|
+
checkedText: { default: void 0 },
|
|
74
|
+
uncheckedText: { default: void 0 },
|
|
75
|
+
autoWidth: {
|
|
76
|
+
type: Boolean,
|
|
77
|
+
default: void 0
|
|
78
|
+
}
|
|
69
79
|
},
|
|
70
80
|
emits: [
|
|
71
81
|
"update:modelValue",
|
|
@@ -76,6 +86,7 @@ var GrSwitch_default = /* @__PURE__ */ defineComponent({
|
|
|
76
86
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
77
87
|
const getCustomColor = (value) => value?.trim() || void 0;
|
|
78
88
|
const props = __props;
|
|
89
|
+
const slots = useSlots();
|
|
79
90
|
const field = useGrFormFieldContext();
|
|
80
91
|
const fieldId = computed(() => field?.id.value);
|
|
81
92
|
const describedBy = computed(() => field?.describedById.value);
|
|
@@ -102,8 +113,15 @@ var GrSwitch_default = /* @__PURE__ */ defineComponent({
|
|
|
102
113
|
]
|
|
103
114
|
});
|
|
104
115
|
const emit = __emit;
|
|
116
|
+
const resolvedShowStateText = useGrComponentProp("GrSwitch", "showStateText", () => props.showStateText, false);
|
|
117
|
+
const resolvedAutoWidth = useGrComponentProp("GrSwitch", "autoWidth", () => props.autoWidth, false);
|
|
118
|
+
const stateTextSize = computed(() => {
|
|
119
|
+
if (!resolvedShowStateText.value) return void 0;
|
|
120
|
+
return isGrSwitchStateTextSize(resolvedSize.value) ? resolvedSize.value : void 0;
|
|
121
|
+
});
|
|
122
|
+
const hasStateText = computed(() => stateTextSize.value !== void 0);
|
|
105
123
|
const rootClass = computed(() => grSwitchRootClass(props.labelPosition));
|
|
106
|
-
const trackClass = computed(() => grSwitchTrackClass(resolvedSize.value));
|
|
124
|
+
const trackClass = computed(() => grSwitchTrackClass(resolvedSize.value, hasStateText.value && resolvedAutoWidth.value));
|
|
107
125
|
const trackStyle = computed(() => {
|
|
108
126
|
const isChecked = props.modelValue;
|
|
109
127
|
const defaultBackgroundColor = isChecked ? "var(--gr-primary)" : "var(--gr-muted)";
|
|
@@ -120,8 +138,29 @@ var GrSwitch_default = /* @__PURE__ */ defineComponent({
|
|
|
120
138
|
checked: props.modelValue
|
|
121
139
|
}));
|
|
122
140
|
const spinnerClass = computed(() => grSwitchSpinnerClass(resolvedSize.value));
|
|
141
|
+
const thumbIconSlot = computed(() => props.modelValue ? slots["checked-icon"] : slots["unchecked-icon"]);
|
|
142
|
+
const thumbIconClass = computed(() => grSwitchThumbIconClass(resolvedSize.value));
|
|
123
143
|
const labelClass = computed(() => grSwitchLabelClass(resolvedSize.value, isDisabled.value));
|
|
124
144
|
const resolvedLoadingText = computed(() => props.loadingText ?? t("gr.switch.loading", "Saving…"));
|
|
145
|
+
const stateTextClass = computed(() => stateTextSize.value ? grSwitchStateTextClass({
|
|
146
|
+
size: stateTextSize.value,
|
|
147
|
+
checked: props.modelValue,
|
|
148
|
+
disabled: isDisabled.value,
|
|
149
|
+
autoWidth: resolvedAutoWidth.value
|
|
150
|
+
}) : "");
|
|
151
|
+
const checkedStateText = computed(() => props.checkedText ?? t("gr.switch.on", "ON"));
|
|
152
|
+
const uncheckedStateText = computed(() => props.uncheckedText ?? t("gr.switch.off", "OFF"));
|
|
153
|
+
const resolvedStateText = computed(() => props.modelValue ? checkedStateText.value : uncheckedStateText.value);
|
|
154
|
+
const ghostStateText = computed(() => props.modelValue ? uncheckedStateText.value : checkedStateText.value);
|
|
155
|
+
if (process.env.NODE_ENV !== "production") {
|
|
156
|
+
watchEffect(() => {
|
|
157
|
+
if (resolvedAutoWidth.value && !resolvedShowStateText.value) console.warn("[granularity] GrSwitch: `autoWidth` без `showStateText` ничего не делает — дорожке не подо что растягиваться.");
|
|
158
|
+
});
|
|
159
|
+
watchEffect(() => {
|
|
160
|
+
if (!resolvedShowStateText.value || isGrSwitchStateTextSize(resolvedSize.value)) return;
|
|
161
|
+
console.warn(`[granularity] GrSwitch: подпись состояния не нарисована на ступени \`${resolvedSize.value}\`: рядом с бегунком ${stateTextRoom[resolvedSize.value]}px, а минимально читаемой подписи нужен ${stateTextRoom.md}px. Подписи живут на \`md\` и \`lg\`.`);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
125
164
|
const submitsValue = computed(() => props.modelValue && !isDisabled.value && Boolean(props.name));
|
|
126
165
|
function toggle() {
|
|
127
166
|
if (isDisabled.value || isReadonly.value || props.loading) return;
|
|
@@ -162,7 +201,17 @@ var GrSwitch_default = /* @__PURE__ */ defineComponent({
|
|
|
162
201
|
"data-gr-switch-track": "",
|
|
163
202
|
class: normalizeClass(trackClass.value),
|
|
164
203
|
style: normalizeStyle(trackStyle.value)
|
|
165
|
-
}, [
|
|
204
|
+
}, [stateTextSize.value ? (openBlock(), createElementBlock("span", {
|
|
205
|
+
key: 0,
|
|
206
|
+
"data-testid": "gr-switch-state-text",
|
|
207
|
+
"data-gr-switch-state-text": "",
|
|
208
|
+
class: normalizeClass(stateTextClass.value),
|
|
209
|
+
"aria-hidden": "true"
|
|
210
|
+
}, [createElementVNode("span", { class: normalizeClass(unref(stateTextStackClass)) }, toDisplayString(resolvedStateText.value), 3), unref(resolvedAutoWidth) ? (openBlock(), createElementBlock("span", {
|
|
211
|
+
key: 0,
|
|
212
|
+
"data-gr-switch-state-text-ghost": "",
|
|
213
|
+
class: normalizeClass(unref(stateTextGhostClass))
|
|
214
|
+
}, toDisplayString(ghostStateText.value), 3)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true), createElementVNode("span", {
|
|
166
215
|
"data-testid": "gr-switch-thumb",
|
|
167
216
|
"data-gr-switch-thumb": "",
|
|
168
217
|
class: normalizeClass(thumbClass.value),
|
|
@@ -171,7 +220,12 @@ var GrSwitch_default = /* @__PURE__ */ defineComponent({
|
|
|
171
220
|
key: 0,
|
|
172
221
|
"data-gr-switch-spinner": "",
|
|
173
222
|
class: normalizeClass(spinnerClass.value)
|
|
174
|
-
}, null, 8, ["class"])) :
|
|
223
|
+
}, null, 8, ["class"])) : thumbIconSlot.value ? (openBlock(), createElementBlock("span", {
|
|
224
|
+
key: 1,
|
|
225
|
+
"data-testid": "gr-switch-thumb-icon",
|
|
226
|
+
"data-gr-switch-thumb-icon": "",
|
|
227
|
+
class: normalizeClass(thumbIconClass.value)
|
|
228
|
+
}, [__props.modelValue ? renderSlot(_ctx.$slots, "checked-icon", {}, void 0, void 0, 0) : renderSlot(_ctx.$slots, "unchecked-icon", {}, void 0, void 0, 1)], 2)) : createCommentVNode("", true)], 2)], 6),
|
|
175
229
|
_ctx.$slots.default ? (openBlock(), createElementBlock("span", {
|
|
176
230
|
key: 0,
|
|
177
231
|
"data-gr-switch-label": "",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrSwitch-D7X42uIA.js","names":["$attrs","$slots"],"sources":["../../../../src/components/GrSwitch/GrSwitch.vue","../../../../src/components/GrSwitch/GrSwitch.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, watchEffect } from 'vue'\nimport IconLoader from '~icons/lucide/loader-circle'\n\nimport { useGrComponentSize } from '../GrConfigProvider/context'\nimport { useGrFormFieldContext } from '../GrFormField/context'\nimport { useGrComponentProp } from '../../composables/useGrComponentConfig'\nimport { useGrFormControl } from '../../composables/useGrFormControl'\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\n\nimport {\n grSwitchLabelClass,\n grSwitchRootClass,\n grSwitchSpinnerClass,\n grSwitchStateTextClass,\n grSwitchThumbClass,\n grSwitchThumbIconClass,\n grSwitchTrackClass,\n isGrSwitchStateTextSize,\n stateTextGhostClass,\n stateTextRoom,\n stateTextStackClass,\n type GrSwitchLabelPosition,\n type GrSwitchSize,\n type GrSwitchStateTextSize,\n} from './grSwitchStyles'\n\nexport type {\n GrSwitchLabelPosition,\n GrSwitchSize,\n GrSwitchStateTextSize,\n} from './grSwitchStyles'\n\n/**\n * Пропсы публичного GR-примитива «Switch».\n */\nexport interface GrSwitchProps {\n /**\n * Значение переключателя. Необязательное: без `v-model` контрол рисуется\n * выключенным — так же, как `GrCheckbox`. Обязательный проп заставлял бы\n * заводить `ref` даже там, где переключатель presentational.\n */\n modelValue?: boolean\n disabled?: boolean\n /** Только для чтения: состояние видно, но не переключается. */\n readonly?: boolean\n /** Визуальное и ARIA-состояние ошибки. */\n invalid?: boolean\n /** Обязательное поле (`aria-required`). */\n required?: boolean\n ariaLabel?: string\n size?: GrSwitchSize\n /** Сторона подписи относительно дорожки. */\n labelPosition?: GrSwitchLabelPosition\n /** Идёт сохранение: бегунок показывает спиннер, переключение заблокировано. */\n loading?: boolean\n /** i18n: что именно грузится. `aria-busy` сам по себе часть AT не объявляет. */\n loadingText?: string\n /** Имя поля для нативной отправки формы. Без него скрытое поле не рендерится. */\n name?: string\n /** Значение, уходящее в форму во включённом состоянии. */\n value?: string\n /** `id` формы, если переключатель лежит вне неё. */\n form?: string\n /** Кастомный цвет фона в активном состоянии. Если не задан — `var(--gr-primary)`. */\n activeBackgroundColor?: string\n /** Кастомный цвет фона в неактивном состоянии. Если не задан — `var(--gr-muted)`. */\n inactiveBackgroundColor?: string\n /**\n * Подпись состояния внутри дорожки — на свободной от бегунка стороне.\n * Помещается только на `md` и `lg`; на мелких ступенях не рисуется.\n */\n showStateText?: boolean\n /** Текст включённого состояния. Без него — `gr.switch.on` из локали. */\n checkedText?: string\n /** Текст выключенного состояния. Без него — `gr.switch.off` из локали. */\n uncheckedText?: string\n /**\n * Дорожка растягивается под подпись, а ступень размера становится нижней\n * границей ширины. Без `showStateText` смысла не имеет: тянуться не под что.\n */\n autoWidth?: boolean\n}\n\nexport interface GrSwitchEmits {\n (e: 'update:modelValue', value: boolean): void\n (e: 'change', value: boolean): void\n (e: 'focus', event: FocusEvent): void\n (e: 'blur', event: FocusEvent): void\n}\n\nconst getCustomColor = (value?: string) => value?.trim() || undefined\n\n// Скрытое поле — сосед кнопки, а не её потомок: интерактивный контент внутри\n// `<button>` невалиден. Из-за этого корень компонента — фрагмент, и атрибуты\n// потребителя надо донести до кнопки руками.\ndefineOptions({ inheritAttrs: false })\n\nconst props = withDefaults(\n defineProps<GrSwitchProps>(),\n {\n modelValue: false,\n disabled: false,\n readonly: false,\n invalid: false,\n required: false,\n ariaLabel: undefined,\n size: undefined,\n labelPosition: 'end',\n loading: false,\n loadingText: undefined,\n name: undefined,\n value: 'on',\n form: undefined,\n activeBackgroundColor: undefined,\n inactiveBackgroundColor: undefined,\n // `undefined`, а не `false`: Vue приводит отсутствующий boolean к `false`,\n // и дефолт из `GrConfigProvider` до компонента бы не доехал.\n showStateText: undefined,\n checkedText: undefined,\n uncheckedText: undefined,\n autoWidth: undefined,\n },\n)\n\n// Контекст `GrFormField`: id для `<label for>`, описание ошибкой, невалидность.\n// `<button>` — labelable-элемент, поэтому клик по подписи фокусирует переключатель.\nconst slots = defineSlots<{\n /** Подпись переключателя. */\n 'default'?: () => any\n /**\n * Знак на бегунке во включённом состоянии — галочка, замок, что угодно.\n *\n * Размер задаёт обёртка по ступени `size`, поэтому содержимое слота тянется\n * до неё: `class=\"h-full w-full\"`, как у `GrBadge` и `GrChip`.\n *\n * Знак декоративен — бегунок целиком `aria-hidden`, а состояние диктор берёт\n * из `aria-checked`. Смысла, которого нет больше нигде, сюда класть нельзя.\n */\n 'checked-icon'?: () => any\n /** То же для выключенного состояния. Слоты независимы. */\n 'unchecked-icon'?: () => any\n}>()\n\nconst field = useGrFormFieldContext()\nconst fieldId = computed(() => field?.id.value)\nconst describedBy = computed(() => field?.describedById.value)\nconst {\n disabled: isDisabled,\n invalid: isInvalid,\n required: isRequired,\n readonly: isReadonly,\n} = useGrFormControl(() => props)\n\nconst { t } = useGranularityTranslations()\n\nconst rootEl = ref<HTMLButtonElement | null>(null)\n\nfunction focus(): void {\n rootEl.value?.focus()\n}\n\nfunction blur(): void {\n rootEl.value?.blur()\n}\n\ndefineExpose({ focus, blur })\n\n// Эффективный размер: локальный проп → `GrConfigProvider` → дефолт компонента.\nconst resolvedSize = useGrComponentSize(() => props.size, {\n component: 'GrSwitch',\n supported: ['xs', 'sm', 'md', 'lg'],\n})\n\nconst emit = defineEmits<GrSwitchEmits>()\n\nconst resolvedShowStateText = useGrComponentProp(\n 'GrSwitch',\n 'showStateText',\n () => props.showStateText,\n false,\n)\n\nconst resolvedAutoWidth = useGrComponentProp(\n 'GrSwitch',\n 'autoWidth',\n () => props.autoWidth,\n false,\n)\n\n// Ступень, на которой подпись помещается в дорожку, — иначе её нет вовсе.\nconst stateTextSize = computed<GrSwitchStateTextSize | undefined>(() => {\n if (!resolvedShowStateText.value)\n return undefined\n\n return isGrSwitchStateTextSize(resolvedSize.value) ? resolvedSize.value : undefined\n})\n\nconst hasStateText = computed(() => stateTextSize.value !== undefined)\n\nconst rootClass = computed(() => grSwitchRootClass(props.labelPosition))\n\nconst trackClass = computed(() => grSwitchTrackClass(resolvedSize.value, hasStateText.value && resolvedAutoWidth.value))\n\nconst trackStyle = computed(() => {\n const isChecked = props.modelValue\n const defaultBackgroundColor = isChecked ? 'var(--gr-primary)' : 'var(--gr-muted)'\n const customBackgroundColor = getCustomColor(\n isChecked ? props.activeBackgroundColor : props.inactiveBackgroundColor,\n )\n // Недоступность гасится токеном и перебивает кастомный цвет: иначе выключенный\n // переключатель остался бы таким же ярким, как рабочий.\n const backgroundColor = isDisabled.value\n ? 'var(--gr-disabled-bg)'\n : customBackgroundColor ?? defaultBackgroundColor\n\n return {\n '--gr-switch-track-bg': backgroundColor,\n '--gr-switch-track-brd': isDisabled.value\n ? 'var(--gr-disabled-brd)'\n : customBackgroundColor\n ? backgroundColor\n : isChecked\n ? 'var(--gr-primary)'\n : 'var(--gr-brd)',\n 'backgroundColor': 'var(--gr-switch-track-bg)',\n }\n})\n\nconst thumbClass = computed(() => grSwitchThumbClass({ size: resolvedSize.value, checked: props.modelValue }))\n\nconst spinnerClass = computed(() => grSwitchSpinnerClass(resolvedSize.value))\n\n// Спиннер и иконка занимают центр бегунка: пока идёт запрос, важнее «состояние\n// меняется», чем «каким оно стало».\nconst thumbIconSlot = computed(() => (props.modelValue ? slots['checked-icon'] : slots['unchecked-icon']))\n\nconst thumbIconClass = computed(() => grSwitchThumbIconClass(resolvedSize.value))\n\nconst labelClass = computed(() => grSwitchLabelClass(resolvedSize.value, isDisabled.value))\n\nconst resolvedLoadingText = computed(() => props.loadingText ?? t('gr.switch.loading', 'Saving…'))\n\nconst stateTextClass = computed(() => (stateTextSize.value\n ? grSwitchStateTextClass({\n size: stateTextSize.value,\n checked: props.modelValue,\n disabled: isDisabled.value,\n autoWidth: resolvedAutoWidth.value,\n })\n : ''))\n\nconst checkedStateText = computed(() => props.checkedText ?? t('gr.switch.on', 'ON'))\nconst uncheckedStateText = computed(() => props.uncheckedText ?? t('gr.switch.off', 'OFF'))\n\nconst resolvedStateText = computed(() => (\n props.modelValue ? checkedStateText.value : uncheckedStateText.value\n))\n\n// Невидимый дубль держит ширину: без него дорожка меняла бы размер на каждом\n// щелчке, потому что «вкл» и «выкл» почти никогда не равны по ширине.\nconst ghostStateText = computed(() => (\n props.modelValue ? uncheckedStateText.value : checkedStateText.value\n))\n\nif (__GR_DEV__) {\n watchEffect(() => {\n if (resolvedAutoWidth.value && !resolvedShowStateText.value) {\n console.warn(\n '[granularity] GrSwitch: `autoWidth` без `showStateText` ничего не делает — '\n + 'дорожке не подо что растягиваться.',\n )\n }\n })\n\n watchEffect(() => {\n if (!resolvedShowStateText.value || isGrSwitchStateTextSize(resolvedSize.value))\n return\n\n console.warn(\n `[granularity] GrSwitch: подпись состояния не нарисована на ступени \\`${resolvedSize.value}\\`: `\n + `рядом с бегунком ${stateTextRoom[resolvedSize.value]}px, а минимально читаемой подписи нужен `\n + `${stateTextRoom.md}px. Подписи живут на \\`md\\` и \\`lg\\`.`,\n )\n })\n}\n\n// Выключенный переключатель не отправляется вовсе — так устроен чекбокс в HTML,\n// и сервер отличает «выкл» по отсутствию ключа.\nconst submitsValue = computed(\n () => props.modelValue && !isDisabled.value && Boolean(props.name),\n)\n\nfunction toggle(): void {\n if (isDisabled.value || isReadonly.value || props.loading) {\n return\n }\n\n const next = !props.modelValue\n emit('update:modelValue', next)\n emit('change', next)\n}\n</script>\n\n<template>\n <input\n v-if=\"submitsValue\"\n type=\"hidden\"\n :name=\"name\"\n :value=\"value\"\n :form=\"form\"\n >\n\n <button\n :id=\"fieldId\"\n ref=\"rootEl\"\n v-bind=\"$attrs\"\n type=\"button\"\n role=\"switch\"\n data-gr-switch\n :aria-checked=\"modelValue ? 'true' : 'false'\"\n :aria-label=\"ariaLabel\"\n :aria-describedby=\"describedBy\"\n :aria-invalid=\"isInvalid ? 'true' : undefined\"\n :aria-required=\"isRequired ? 'true' : undefined\"\n :aria-readonly=\"isReadonly ? 'true' : undefined\"\n :aria-busy=\"loading ? 'true' : undefined\"\n :disabled=\"isDisabled\"\n :class=\"rootClass\"\n @click=\"toggle\"\n @focus=\"emit('focus', $event)\"\n @blur=\"emit('blur', $event)\"\n >\n <span\n data-testid=\"gr-switch-track\"\n data-gr-switch-track\n :class=\"trackClass\"\n :style=\"trackStyle\"\n >\n <span\n v-if=\"stateTextSize\"\n data-testid=\"gr-switch-state-text\"\n data-gr-switch-state-text\n :class=\"stateTextClass\"\n aria-hidden=\"true\"\n >\n <span :class=\"stateTextStackClass\">{{ resolvedStateText }}</span>\n <span\n v-if=\"resolvedAutoWidth\"\n data-gr-switch-state-text-ghost\n :class=\"stateTextGhostClass\"\n >{{ ghostStateText }}</span>\n </span>\n <span\n data-testid=\"gr-switch-thumb\"\n data-gr-switch-thumb\n :class=\"thumbClass\"\n aria-hidden=\"true\"\n >\n <IconLoader v-if=\"loading\" data-gr-switch-spinner :class=\"spinnerClass\" />\n <span\n v-else-if=\"thumbIconSlot\"\n data-testid=\"gr-switch-thumb-icon\"\n data-gr-switch-thumb-icon\n :class=\"thumbIconClass\"\n >\n <slot v-if=\"modelValue\" name=\"checked-icon\" />\n <slot v-else name=\"unchecked-icon\" />\n </span>\n </span>\n </span>\n <span\n v-if=\"$slots.default\"\n data-gr-switch-label\n :class=\"labelClass\"\n >\n <slot />\n </span>\n <span v-if=\"loading\" data-gr-switch-loading-text class=\"sr-only\">{{ resolvedLoadingText }}</span>\n </button>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, ref, watchEffect } from 'vue'\nimport IconLoader from '~icons/lucide/loader-circle'\n\nimport { useGrComponentSize } from '../GrConfigProvider/context'\nimport { useGrFormFieldContext } from '../GrFormField/context'\nimport { useGrComponentProp } from '../../composables/useGrComponentConfig'\nimport { useGrFormControl } from '../../composables/useGrFormControl'\nimport { useGranularityTranslations } from '../../internal/granularityI18n'\n\nimport {\n grSwitchLabelClass,\n grSwitchRootClass,\n grSwitchSpinnerClass,\n grSwitchStateTextClass,\n grSwitchThumbClass,\n grSwitchThumbIconClass,\n grSwitchTrackClass,\n isGrSwitchStateTextSize,\n stateTextGhostClass,\n stateTextRoom,\n stateTextStackClass,\n type GrSwitchLabelPosition,\n type GrSwitchSize,\n type GrSwitchStateTextSize,\n} from './grSwitchStyles'\n\nexport type {\n GrSwitchLabelPosition,\n GrSwitchSize,\n GrSwitchStateTextSize,\n} from './grSwitchStyles'\n\n/**\n * Пропсы публичного GR-примитива «Switch».\n */\nexport interface GrSwitchProps {\n /**\n * Значение переключателя. Необязательное: без `v-model` контрол рисуется\n * выключенным — так же, как `GrCheckbox`. Обязательный проп заставлял бы\n * заводить `ref` даже там, где переключатель presentational.\n */\n modelValue?: boolean\n disabled?: boolean\n /** Только для чтения: состояние видно, но не переключается. */\n readonly?: boolean\n /** Визуальное и ARIA-состояние ошибки. */\n invalid?: boolean\n /** Обязательное поле (`aria-required`). */\n required?: boolean\n ariaLabel?: string\n size?: GrSwitchSize\n /** Сторона подписи относительно дорожки. */\n labelPosition?: GrSwitchLabelPosition\n /** Идёт сохранение: бегунок показывает спиннер, переключение заблокировано. */\n loading?: boolean\n /** i18n: что именно грузится. `aria-busy` сам по себе часть AT не объявляет. */\n loadingText?: string\n /** Имя поля для нативной отправки формы. Без него скрытое поле не рендерится. */\n name?: string\n /** Значение, уходящее в форму во включённом состоянии. */\n value?: string\n /** `id` формы, если переключатель лежит вне неё. */\n form?: string\n /** Кастомный цвет фона в активном состоянии. Если не задан — `var(--gr-primary)`. */\n activeBackgroundColor?: string\n /** Кастомный цвет фона в неактивном состоянии. Если не задан — `var(--gr-muted)`. */\n inactiveBackgroundColor?: string\n /**\n * Подпись состояния внутри дорожки — на свободной от бегунка стороне.\n * Помещается только на `md` и `lg`; на мелких ступенях не рисуется.\n */\n showStateText?: boolean\n /** Текст включённого состояния. Без него — `gr.switch.on` из локали. */\n checkedText?: string\n /** Текст выключенного состояния. Без него — `gr.switch.off` из локали. */\n uncheckedText?: string\n /**\n * Дорожка растягивается под подпись, а ступень размера становится нижней\n * границей ширины. Без `showStateText` смысла не имеет: тянуться не под что.\n */\n autoWidth?: boolean\n}\n\nexport interface GrSwitchEmits {\n (e: 'update:modelValue', value: boolean): void\n (e: 'change', value: boolean): void\n (e: 'focus', event: FocusEvent): void\n (e: 'blur', event: FocusEvent): void\n}\n\nconst getCustomColor = (value?: string) => value?.trim() || undefined\n\n// Скрытое поле — сосед кнопки, а не её потомок: интерактивный контент внутри\n// `<button>` невалиден. Из-за этого корень компонента — фрагмент, и атрибуты\n// потребителя надо донести до кнопки руками.\ndefineOptions({ inheritAttrs: false })\n\nconst props = withDefaults(\n defineProps<GrSwitchProps>(),\n {\n modelValue: false,\n disabled: false,\n readonly: false,\n invalid: false,\n required: false,\n ariaLabel: undefined,\n size: undefined,\n labelPosition: 'end',\n loading: false,\n loadingText: undefined,\n name: undefined,\n value: 'on',\n form: undefined,\n activeBackgroundColor: undefined,\n inactiveBackgroundColor: undefined,\n // `undefined`, а не `false`: Vue приводит отсутствующий boolean к `false`,\n // и дефолт из `GrConfigProvider` до компонента бы не доехал.\n showStateText: undefined,\n checkedText: undefined,\n uncheckedText: undefined,\n autoWidth: undefined,\n },\n)\n\n// Контекст `GrFormField`: id для `<label for>`, описание ошибкой, невалидность.\n// `<button>` — labelable-элемент, поэтому клик по подписи фокусирует переключатель.\nconst slots = defineSlots<{\n /** Подпись переключателя. */\n 'default'?: () => any\n /**\n * Знак на бегунке во включённом состоянии — галочка, замок, что угодно.\n *\n * Размер задаёт обёртка по ступени `size`, поэтому содержимое слота тянется\n * до неё: `class=\"h-full w-full\"`, как у `GrBadge` и `GrChip`.\n *\n * Знак декоративен — бегунок целиком `aria-hidden`, а состояние диктор берёт\n * из `aria-checked`. Смысла, которого нет больше нигде, сюда класть нельзя.\n */\n 'checked-icon'?: () => any\n /** То же для выключенного состояния. Слоты независимы. */\n 'unchecked-icon'?: () => any\n}>()\n\nconst field = useGrFormFieldContext()\nconst fieldId = computed(() => field?.id.value)\nconst describedBy = computed(() => field?.describedById.value)\nconst {\n disabled: isDisabled,\n invalid: isInvalid,\n required: isRequired,\n readonly: isReadonly,\n} = useGrFormControl(() => props)\n\nconst { t } = useGranularityTranslations()\n\nconst rootEl = ref<HTMLButtonElement | null>(null)\n\nfunction focus(): void {\n rootEl.value?.focus()\n}\n\nfunction blur(): void {\n rootEl.value?.blur()\n}\n\ndefineExpose({ focus, blur })\n\n// Эффективный размер: локальный проп → `GrConfigProvider` → дефолт компонента.\nconst resolvedSize = useGrComponentSize(() => props.size, {\n component: 'GrSwitch',\n supported: ['xs', 'sm', 'md', 'lg'],\n})\n\nconst emit = defineEmits<GrSwitchEmits>()\n\nconst resolvedShowStateText = useGrComponentProp(\n 'GrSwitch',\n 'showStateText',\n () => props.showStateText,\n false,\n)\n\nconst resolvedAutoWidth = useGrComponentProp(\n 'GrSwitch',\n 'autoWidth',\n () => props.autoWidth,\n false,\n)\n\n// Ступень, на которой подпись помещается в дорожку, — иначе её нет вовсе.\nconst stateTextSize = computed<GrSwitchStateTextSize | undefined>(() => {\n if (!resolvedShowStateText.value)\n return undefined\n\n return isGrSwitchStateTextSize(resolvedSize.value) ? resolvedSize.value : undefined\n})\n\nconst hasStateText = computed(() => stateTextSize.value !== undefined)\n\nconst rootClass = computed(() => grSwitchRootClass(props.labelPosition))\n\nconst trackClass = computed(() => grSwitchTrackClass(resolvedSize.value, hasStateText.value && resolvedAutoWidth.value))\n\nconst trackStyle = computed(() => {\n const isChecked = props.modelValue\n const defaultBackgroundColor = isChecked ? 'var(--gr-primary)' : 'var(--gr-muted)'\n const customBackgroundColor = getCustomColor(\n isChecked ? props.activeBackgroundColor : props.inactiveBackgroundColor,\n )\n // Недоступность гасится токеном и перебивает кастомный цвет: иначе выключенный\n // переключатель остался бы таким же ярким, как рабочий.\n const backgroundColor = isDisabled.value\n ? 'var(--gr-disabled-bg)'\n : customBackgroundColor ?? defaultBackgroundColor\n\n return {\n '--gr-switch-track-bg': backgroundColor,\n '--gr-switch-track-brd': isDisabled.value\n ? 'var(--gr-disabled-brd)'\n : customBackgroundColor\n ? backgroundColor\n : isChecked\n ? 'var(--gr-primary)'\n : 'var(--gr-brd)',\n 'backgroundColor': 'var(--gr-switch-track-bg)',\n }\n})\n\nconst thumbClass = computed(() => grSwitchThumbClass({ size: resolvedSize.value, checked: props.modelValue }))\n\nconst spinnerClass = computed(() => grSwitchSpinnerClass(resolvedSize.value))\n\n// Спиннер и иконка занимают центр бегунка: пока идёт запрос, важнее «состояние\n// меняется», чем «каким оно стало».\nconst thumbIconSlot = computed(() => (props.modelValue ? slots['checked-icon'] : slots['unchecked-icon']))\n\nconst thumbIconClass = computed(() => grSwitchThumbIconClass(resolvedSize.value))\n\nconst labelClass = computed(() => grSwitchLabelClass(resolvedSize.value, isDisabled.value))\n\nconst resolvedLoadingText = computed(() => props.loadingText ?? t('gr.switch.loading', 'Saving…'))\n\nconst stateTextClass = computed(() => (stateTextSize.value\n ? grSwitchStateTextClass({\n size: stateTextSize.value,\n checked: props.modelValue,\n disabled: isDisabled.value,\n autoWidth: resolvedAutoWidth.value,\n })\n : ''))\n\nconst checkedStateText = computed(() => props.checkedText ?? t('gr.switch.on', 'ON'))\nconst uncheckedStateText = computed(() => props.uncheckedText ?? t('gr.switch.off', 'OFF'))\n\nconst resolvedStateText = computed(() => (\n props.modelValue ? checkedStateText.value : uncheckedStateText.value\n))\n\n// Невидимый дубль держит ширину: без него дорожка меняла бы размер на каждом\n// щелчке, потому что «вкл» и «выкл» почти никогда не равны по ширине.\nconst ghostStateText = computed(() => (\n props.modelValue ? uncheckedStateText.value : checkedStateText.value\n))\n\nif (__GR_DEV__) {\n watchEffect(() => {\n if (resolvedAutoWidth.value && !resolvedShowStateText.value) {\n console.warn(\n '[granularity] GrSwitch: `autoWidth` без `showStateText` ничего не делает — '\n + 'дорожке не подо что растягиваться.',\n )\n }\n })\n\n watchEffect(() => {\n if (!resolvedShowStateText.value || isGrSwitchStateTextSize(resolvedSize.value))\n return\n\n console.warn(\n `[granularity] GrSwitch: подпись состояния не нарисована на ступени \\`${resolvedSize.value}\\`: `\n + `рядом с бегунком ${stateTextRoom[resolvedSize.value]}px, а минимально читаемой подписи нужен `\n + `${stateTextRoom.md}px. Подписи живут на \\`md\\` и \\`lg\\`.`,\n )\n })\n}\n\n// Выключенный переключатель не отправляется вовсе — так устроен чекбокс в HTML,\n// и сервер отличает «выкл» по отсутствию ключа.\nconst submitsValue = computed(\n () => props.modelValue && !isDisabled.value && Boolean(props.name),\n)\n\nfunction toggle(): void {\n if (isDisabled.value || isReadonly.value || props.loading) {\n return\n }\n\n const next = !props.modelValue\n emit('update:modelValue', next)\n emit('change', next)\n}\n</script>\n\n<template>\n <input\n v-if=\"submitsValue\"\n type=\"hidden\"\n :name=\"name\"\n :value=\"value\"\n :form=\"form\"\n >\n\n <button\n :id=\"fieldId\"\n ref=\"rootEl\"\n v-bind=\"$attrs\"\n type=\"button\"\n role=\"switch\"\n data-gr-switch\n :aria-checked=\"modelValue ? 'true' : 'false'\"\n :aria-label=\"ariaLabel\"\n :aria-describedby=\"describedBy\"\n :aria-invalid=\"isInvalid ? 'true' : undefined\"\n :aria-required=\"isRequired ? 'true' : undefined\"\n :aria-readonly=\"isReadonly ? 'true' : undefined\"\n :aria-busy=\"loading ? 'true' : undefined\"\n :disabled=\"isDisabled\"\n :class=\"rootClass\"\n @click=\"toggle\"\n @focus=\"emit('focus', $event)\"\n @blur=\"emit('blur', $event)\"\n >\n <span\n data-testid=\"gr-switch-track\"\n data-gr-switch-track\n :class=\"trackClass\"\n :style=\"trackStyle\"\n >\n <span\n v-if=\"stateTextSize\"\n data-testid=\"gr-switch-state-text\"\n data-gr-switch-state-text\n :class=\"stateTextClass\"\n aria-hidden=\"true\"\n >\n <span :class=\"stateTextStackClass\">{{ resolvedStateText }}</span>\n <span\n v-if=\"resolvedAutoWidth\"\n data-gr-switch-state-text-ghost\n :class=\"stateTextGhostClass\"\n >{{ ghostStateText }}</span>\n </span>\n <span\n data-testid=\"gr-switch-thumb\"\n data-gr-switch-thumb\n :class=\"thumbClass\"\n aria-hidden=\"true\"\n >\n <IconLoader v-if=\"loading\" data-gr-switch-spinner :class=\"spinnerClass\" />\n <span\n v-else-if=\"thumbIconSlot\"\n data-testid=\"gr-switch-thumb-icon\"\n data-gr-switch-thumb-icon\n :class=\"thumbIconClass\"\n >\n <slot v-if=\"modelValue\" name=\"checked-icon\" />\n <slot v-else name=\"unchecked-icon\" />\n </span>\n </span>\n </span>\n <span\n v-if=\"$slots.default\"\n data-gr-switch-label\n :class=\"labelClass\"\n >\n <slot />\n </span>\n <span v-if=\"loading\" data-gr-switch-loading-text class=\"sr-only\">{{ resolvedLoadingText }}</span>\n </button>\n</template>\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as grSwitchSafelist, t as grSwitchConfig } from "../../chunks/config-
|
|
2
|
-
import { t as GrSwitch_default } from "./chunks/GrSwitch-
|
|
1
|
+
import { n as grSwitchSafelist, t as grSwitchConfig } from "../../chunks/config-MUkhktTP.js";
|
|
2
|
+
import { t as GrSwitch_default } from "./chunks/GrSwitch-D7X42uIA.js";
|
|
3
3
|
export { GrSwitch_default as GrSwitch, GrSwitch_default as default, grSwitchConfig, grSwitchSafelist };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as granularityDefaultThemes, i as granularityComponentConfigs, n as GRANULARITY_PROVIDER_ID, o as granularityThemeNames, r as createGranularityProvider, t as granularityProvider } from "./chunks/granular-provider-
|
|
1
|
+
import { a as granularityDefaultThemes, i as granularityComponentConfigs, n as GRANULARITY_PROVIDER_ID, o as granularityThemeNames, r as createGranularityProvider, t as granularityProvider } from "./chunks/granular-provider-B6xomapW.js";
|
|
2
2
|
export { GRANULARITY_PROVIDER_ID, createGranularityProvider, granularityProvider as default, granularityProvider, granularityComponentConfigs, granularityDefaultThemes, granularityThemeNames };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as granularityDefaultThemes, i as granularityComponentConfigs, n as GRANULARITY_PROVIDER_ID, o as granularityThemeNames, r as createGranularityProvider, t as granularityProvider } from "./chunks/granular-provider-
|
|
1
|
+
import { a as granularityDefaultThemes, i as granularityComponentConfigs, n as GRANULARITY_PROVIDER_ID, o as granularityThemeNames, r as createGranularityProvider, t as granularityProvider } from "./chunks/granular-provider-B6xomapW.js";
|
|
2
2
|
export { GRANULARITY_PROVIDER_ID, createGranularityProvider, granularityProvider as default, granularityProvider, granularityComponentConfigs, granularityDefaultThemes, granularityThemeNames };
|
package/dist/i18n/all.js
CHANGED
package/dist/i18n/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { t as GRANULARITY_I18N_KEY } from "../chunks/adapter-CAOxmn2G.js";
|
|
2
|
-
import { i as GRANULARITY_I18N_BLOCK, n as ru, r as en, t as es } from "../chunks/es-
|
|
2
|
+
import { i as GRANULARITY_I18N_BLOCK, n as ru, r as en, t as es } from "../chunks/es-DrUz5J6I.js";
|
|
3
3
|
export { GRANULARITY_I18N_BLOCK, GRANULARITY_I18N_KEY, en, es, ru };
|
package/dist/index.js
CHANGED
|
@@ -18,20 +18,20 @@ import { createLoading, vLoading } from "./directives/loading.js";
|
|
|
18
18
|
import { useFloating } from "./composables/useFloating.js";
|
|
19
19
|
import { useOverlayLayer } from "./composables/useOverlayLayer.js";
|
|
20
20
|
import { useDismissible } from "./composables/useDismissible.js";
|
|
21
|
-
import { t as GrAutocomplete_default } from "./components/GrAutocomplete/chunks/GrAutocomplete-
|
|
21
|
+
import { t as GrAutocomplete_default } from "./components/GrAutocomplete/chunks/GrAutocomplete-Chhw65pI.js";
|
|
22
22
|
import { useVirtualList } from "./composables/useVirtualList.js";
|
|
23
23
|
import { useComboboxNavigation } from "./composables/useComboboxNavigation.js";
|
|
24
24
|
import { n as useGrFormFieldContext } from "./chunks/context-DdNIxa1w.js";
|
|
25
25
|
import { useGrFormControl } from "./composables/useGrFormControl.js";
|
|
26
26
|
import { useRovingFocus } from "./composables/useRovingFocus.js";
|
|
27
|
-
import { t as GrChip_default } from "./components/GrChip/chunks/GrChip-
|
|
27
|
+
import { t as GrChip_default } from "./components/GrChip/chunks/GrChip-DoyS1Dr4.js";
|
|
28
28
|
import { n as grAutocompleteSafelist, t as grAutocompleteConfig } from "./chunks/config-BHLMTJaR.js";
|
|
29
29
|
import { t as GrSkeleton_default } from "./components/GrSkeleton/chunks/GrSkeleton-CgfXxPQ2.js";
|
|
30
30
|
import { n as GrAvatar_default, t as GrAvatarGroup_default } from "./components/GrAvatar/chunks/GrAvatar-Do5-C409.js";
|
|
31
31
|
import { n as grAvatarSafelist, t as grAvatarConfig, u as initialsFrom } from "./chunks/config-CzeZg2LO.js";
|
|
32
|
-
import { t as GrBadge_default } from "./components/GrBadge/chunks/GrBadge-
|
|
33
|
-
import { t as grBadgeSafelist } from "./chunks/safelist-
|
|
34
|
-
import { t as grBadgeConfig } from "./chunks/config-
|
|
32
|
+
import { t as GrBadge_default } from "./components/GrBadge/chunks/GrBadge-C42KLyUD.js";
|
|
33
|
+
import { t as grBadgeSafelist } from "./chunks/safelist-CSfynUC1.js";
|
|
34
|
+
import { t as grBadgeConfig } from "./chunks/config-DF1ezU6y.js";
|
|
35
35
|
import { n as grBadgeWrapSafelist, o as formatBadgeValue, t as grBadgeWrapConfig } from "./chunks/config-DwABJHEo.js";
|
|
36
36
|
import { t as GrBadgeWrap_default } from "./components/GrBadgeWrap/chunks/GrBadgeWrap-wdfxaXiu.js";
|
|
37
37
|
import { n as grBottomNavSafelist, t as grBottomNavConfig } from "./chunks/config-DM0lsduD.js";
|
|
@@ -56,7 +56,7 @@ import { t as GrCheckbox_default } from "./components/GrCheckbox/chunks/GrCheckb
|
|
|
56
56
|
import { n as grCheckboxSafelist, t as grCheckboxConfig } from "./chunks/config-DZCUPHPU.js";
|
|
57
57
|
import { t as GrCheckboxGroup_default } from "./components/GrCheckboxGroup/chunks/GrCheckboxGroup-IpqG5qwm.js";
|
|
58
58
|
import { t as grCheckboxGroupConfig } from "./chunks/config-BuGlNPE9.js";
|
|
59
|
-
import { n as grChipSafelist, t as grChipConfig } from "./chunks/config-
|
|
59
|
+
import { n as grChipSafelist, t as grChipConfig } from "./chunks/config-AKpLyIGD.js";
|
|
60
60
|
import "./components/GrChip/index.js";
|
|
61
61
|
import { n as grChipGroupSafelist, t as grChipGroupConfig } from "./chunks/config-CZPDPJlg.js";
|
|
62
62
|
import { t as GrChipGroup_default } from "./components/GrChipGroup/chunks/GrChipGroup-dDGwnC04.js";
|
|
@@ -131,7 +131,7 @@ import { t as GrImageViewer_default } from "./components/GrImageViewer/chunks/Gr
|
|
|
131
131
|
import { n as grImageViewerSafelist, t as grImageViewerConfig } from "./chunks/config-DjRhIB5g.js";
|
|
132
132
|
import { n as grInputSafelist, t as grInputConfig } from "./chunks/config-CIUU9ZpY.js";
|
|
133
133
|
import { n as grInputTagSafelist, t as grInputTagConfig } from "./chunks/config-B42iJ48O.js";
|
|
134
|
-
import { t as GrInputTag_default } from "./components/GrInputTag/chunks/GrInputTag-
|
|
134
|
+
import { t as GrInputTag_default } from "./components/GrInputTag/chunks/GrInputTag-qnRdAZnn.js";
|
|
135
135
|
import { t as useTree } from "./chunks/useTree-BebEiBcL.js";
|
|
136
136
|
import { n as grTreeViewVars, t as GrTree_default } from "./components/GrTree/chunks/GrTree-6yZrncJE.js";
|
|
137
137
|
import { t as GrJsonViewer_default } from "./components/GrJsonViewer/chunks/GrJsonViewer-D7CyWzhT.js";
|
|
@@ -150,9 +150,11 @@ import { t as GrNavbar_default } from "./components/GrNavbar/chunks/GrNavbar-BRG
|
|
|
150
150
|
import { n as grNavbarSafelist, t as grNavbarConfig } from "./chunks/config-2ZHRsdOc.js";
|
|
151
151
|
import { n as grNumberInputSafelist, t as grNumberInputConfig } from "./chunks/config-BLP94dPY.js";
|
|
152
152
|
import { t as GrNumberInput_default } from "./components/GrNumberInput/chunks/GrNumberInput-BI6-vkcs.js";
|
|
153
|
-
import { t as
|
|
153
|
+
import { n as grOtpInputSafelist, t as grOtpInputConfig } from "./chunks/config-BBtBQE3s.js";
|
|
154
|
+
import { t as GrOtpInput_default } from "./components/GrOtpInput/chunks/GrOtpInput-B_Q-RDLw.js";
|
|
155
|
+
import { t as GrSelect_default } from "./components/GrSelect/chunks/GrSelect-DvSq-nV-.js";
|
|
154
156
|
import { n as grPaginationSafelist, t as grPaginationConfig } from "./chunks/config-Bdf1bt-m.js";
|
|
155
|
-
import { t as GrPagination_default } from "./components/GrPagination/chunks/GrPagination-
|
|
157
|
+
import { t as GrPagination_default } from "./components/GrPagination/chunks/GrPagination-CMrLPzvL.js";
|
|
156
158
|
import { n as grPopoverSafelist, t as grPopoverConfig } from "./chunks/config-tNqtapcT.js";
|
|
157
159
|
import "./components/GrPopover/index.js";
|
|
158
160
|
import { n as grProgressBarSafelist, t as grProgressBarConfig } from "./chunks/config-hnoZvcIM.js";
|
|
@@ -190,8 +192,8 @@ import { n as formatStatisticValue, t as GrStatistic_default } from "./component
|
|
|
190
192
|
import { n as grStatisticSafelist, t as grStatisticConfig } from "./chunks/config-DGC00bTp.js";
|
|
191
193
|
import { n as grStepsSafelist, t as grStepsConfig } from "./chunks/config-CLjjjPZj.js";
|
|
192
194
|
import { t as GrSteps_default } from "./components/GrSteps/chunks/GrSteps-Cng-Wrjk.js";
|
|
193
|
-
import { n as grSwitchSafelist, t as grSwitchConfig } from "./chunks/config-
|
|
194
|
-
import { t as GrSwitch_default } from "./components/GrSwitch/chunks/GrSwitch-
|
|
195
|
+
import { n as grSwitchSafelist, t as grSwitchConfig } from "./chunks/config-MUkhktTP.js";
|
|
196
|
+
import { t as GrSwitch_default } from "./components/GrSwitch/chunks/GrSwitch-D7X42uIA.js";
|
|
195
197
|
import { n as grTableSafelist, t as grTableConfig } from "./chunks/config-D3HOuHDe.js";
|
|
196
198
|
import "./components/GrTable/index.js";
|
|
197
199
|
import { n as GrTabPanels_default, t as GrTabPanel_default } from "./components/GrTabPanels/chunks/GrTabPanels-5zsbqS1v.js";
|
|
@@ -214,7 +216,6 @@ import { n as grTreeSectionsSafelist, t as grTreeSectionsConfig } from "./chunks
|
|
|
214
216
|
import { t as GrTreeSections_default } from "./components/GrTreeSections/chunks/GrTreeSections-DcmDcLwj.js";
|
|
215
217
|
import { n as grTreeSelectSafelist, t as grTreeSelectConfig } from "./chunks/config-BAse0laT.js";
|
|
216
218
|
import { t as GrTreeSelect_default } from "./components/GrTreeSelect/chunks/GrTreeSelect-B6KoDYiZ.js";
|
|
217
|
-
import "./composables/useGrComponentConfig.js";
|
|
218
219
|
import "./composables/useGranularityTranslations.js";
|
|
219
220
|
import { GRANULARITY_THEME_STATE, granularityThemePlugin, initThemeEarly, useTheme } from "./composables/useTheme.js";
|
|
220
|
-
export { FileValidationError, GRANULARITY_THEME_STATE, GRANULARITY_TOAST_STATE, GR_KBD_TOKENS, GR_TONES, GrAffix_default as GrAffix, GrAlert_default as GrAlert, GrAutocomplete_default as GrAutocomplete, GrAvatar_default as GrAvatar, GrAvatarGroup_default as GrAvatarGroup, GrBadge_default as GrBadge, GrBadgeWrap_default as GrBadgeWrap, GrBottomNav_default as GrBottomNav, GrBreadcrumbs_default as GrBreadcrumbs, GrButton_default as GrButton, GrButtonGroup_default as GrButtonGroup, GrCard_default as GrCard, GrCarousel_default as GrCarousel, GrCarouselSlide_default as GrCarouselSlide, GrCheckbox_default as GrCheckbox, GrCheckboxGroup_default as GrCheckboxGroup, GrChip_default as GrChip, GrChipGroup_default as GrChipGroup, GrCollapse_default as GrCollapse, GrCollapseItem_default as GrCollapseItem, GrColorPicker_default as GrColorPicker, GrCommandPalette_default as GrCommandPalette, GrConfigProvider_default as GrConfigProvider, GrConfirmDialog_default as GrConfirmDialog, GrContextMenu_default as GrContextMenu, GrDataTable_default as GrDataTable, GrDelta_default as GrDelta, GrDescriptionList_default as GrDescriptionList, GrDialog_default as GrDialog, GrDialogCloseButton_default as GrDialogCloseButton, GrDialogFooter_default as GrDialogFooter, GrDialogHeader_default as GrDialogHeader, GrDialogServiceHost_default as GrDialogServiceHost, GrDivider_default as GrDivider, GrDrawer_default as GrDrawer, GrDropdown_default as GrDropdown, GrDropdownMenu_default as GrDropdownMenu, GrDropdownMenuColumn_default as GrDropdownMenuColumn, GrDropdownMenuColumns_default as GrDropdownMenuColumns, GrDropdownMenuDivider_default as GrDropdownMenuDivider, GrDropdownMenuGroup_default as GrDropdownMenuGroup, GrDropdownMenuHeader_default as GrDropdownMenuHeader, GrDropdownMenuItem_default as GrDropdownMenuItem, GrDropdownMenuList_default as GrDropdownMenuList, GrEmptyState_default as GrEmptyState, GrFilePreview_default as GrFilePreview, GrFileUpload_default as GrFileUpload, GrForm_default as GrForm, GrFormErrorBanner_default as GrFormErrorBanner, GrFormField_default as GrFormField, GrFormFile_default as GrFormFile, GrFormSection_default as GrFormSection, GrIcon_default as GrIcon, GrImageViewer_default as GrImageViewer, GrInput_default as GrInput, GrInputTag_default as GrInputTag, GrJsonViewer_default as GrJsonViewer, GrKbd_default as GrKbd, GrLink_default as GrLink, GrList_default as GrList, GrListItem_default as GrListItem, GrLoading_default as GrLoading, GrModal_default as GrModal, GrNavbar_default as GrNavbar, GrNumberInput_default as GrNumberInput, GrPagination_default as GrPagination, GrPopover_default as GrPopover, GrProgressBar_default as GrProgressBar, GrProgressCircle_default as GrProgressCircle, GrPromptDialog_default as GrPromptDialog, GrRadio_default as GrRadio, GrRadioGroup_default as GrRadioGroup, GrRating_default as GrRating, GrResponseErrorBanner_default as GrResponseErrorBanner, GrScrollSpy_default as GrScrollSpy, GrSegmented_default as GrSegmented, GrSelect_default as GrSelect, GrSidebar_default as GrSidebar, GrSidebarGroup_default as GrSidebarGroup, GrSidebarItem_default as GrSidebarItem, GrSkeleton_default as GrSkeleton, GrSlider_default as GrSlider, GrSortableList_default as GrSortableList, GrSplitter_default as GrSplitter, GrStatistic_default as GrStatistic, GrSteps_default as GrSteps, GrSwitch_default as GrSwitch, GrTabPanel_default as GrTabPanel, GrTabPanels_default as GrTabPanels, GrTable_default as GrTable, GrTabs_default as GrTabs, GrTextarea_default as GrTextarea, GrTimeline_default as GrTimeline, GrTimelineItem_default as GrTimelineItem, GrToaster_default as GrToaster, GrTooltip_default as GrTooltip, GrTransfer_default as GrTransfer, GrTree_default as GrTree, GrTreeSections_default as GrTreeSections, GrTreeSelect_default as GrTreeSelect, GrUploadAbortError, GrUploadErrorBanner_default as GrUploadErrorBanner, GrUploadHttpError, GrValue_default as GrValue, coreResponseErrorParsers, createGrFormMessageResolver, createLoading, createResponseErrorClassifier, deltaDirection, deltaTone, dialogService, extendDefaultParsers, fileKindOf, findKbdToken, formatBadgeValue, formatStatisticValue, getByPath, grAffixConfig, grAffixSafelist, grAlertConfig, grAutocompleteConfig, grAutocompleteSafelist, grAvatarConfig, grAvatarSafelist, grBadgeConfig, grBadgeSafelist, grBadgeWrapConfig, grBadgeWrapSafelist, grBottomNavConfig, grBottomNavSafelist, grBreadcrumbsConfig, grBreadcrumbsSafelist, grButtonConfig, grButtonGroupConfig, grButtonSafelist, grCardConfig, grCardSafelist, grCarouselConfig, grCarouselSafelist, grCheckboxConfig, grCheckboxGroupConfig, grCheckboxSafelist, grChipConfig, grChipGroupConfig, grChipGroupSafelist, grChipSafelist, grCollapseConfig, grCollapseSafelist, grColorPickerConfig, grColorPickerSafelist, grCommandPaletteConfig, grCommandPaletteSafelist, grConfigProviderConfig, grConfirmDialogConfig, grContextMenuConfig, grDataTableConfig, grDataTableSafelist, grDeltaConfig, grDeltaSafelist, grDescriptionListConfig, grDescriptionListSafelist, grDialogSafelist, grDialogServiceConfig, grDividerConfig, grDividerSafelist, grDrawerConfig, grDrawerSafelist, grDropdownConfig, grDropdownMenuConfig, grDropdownMenuSafelist, grDropdownSafelist, grEmptyStateConfig, grEmptyStateSafelist, grFilePreviewConfig, grFilePreviewSafelist, grFileUploadConfig, grFileUploadSafelist, grFormConfig, grFormFieldConfig, grFormFieldSafelist, grFormFileConfig, grFormFileSafelist, grFormSectionConfig, grFormSectionSafelist, grIconConfig, grIconSafelist, grImageViewerConfig, grImageViewerSafelist, grInputConfig, grInputSafelist, grInputTagConfig, grInputTagSafelist, grJsonViewerConfig, grJsonViewerSafelist, grKbdConfig, grKbdSafelist, grLinkConfig, grLinkSafelist, grListConfig, grListSafelist, grLoadingConfig, grLoadingSafelist, grModalConfig, grModalSafelist, grNavbarConfig, grNavbarSafelist, grNumberInputConfig, grNumberInputSafelist, grPaginationConfig, grPaginationSafelist, grPopoverConfig, grPopoverSafelist, grProgressBarConfig, grProgressBarSafelist, grProgressCircleConfig, grProgressCircleSafelist, grPromptDialogConfig, grRadioConfig, grRadioGroupConfig, grRadioSafelist, grRatingConfig, grRatingSafelist, grScrollSpyConfig, grScrollSpySafelist, grSegmentedConfig, grSegmentedSafelist, grSelectConfig, grSelectSafelist, grSidebarConfig, grSidebarSafelist, grSkeletonConfig, grSliderConfig, grSliderSafelist, grSortableListConfig, grSortableListSafelist, grSplitterConfig, grSplitterSafelist, grStatisticConfig, grStatisticSafelist, grStepsConfig, grStepsSafelist, grSwitchConfig, grSwitchSafelist, grTabPanelsConfig, grTableConfig, grTableSafelist, grTabsConfig, grTabsSafelist, grTextareaConfig, grTextareaSafelist, grTimelineConfig, grTimelineSafelist, grToasterConfig, grToasterSafelist, grTooltipConfig, grTooltipSafelist, grTransferConfig, grTransferSafelist, grTreeConfig, grTreeSafelist, grTreeSectionsConfig, grTreeSectionsSafelist, grTreeSelectConfig, grTreeSelectSafelist, grTreeViewVars, grValueConfig, grValueSafelist, granularityDialogServicePlugin, granularityThemePlugin, granularityToastPlugin, initThemeEarly, initialsFrom, isEmpty, isPreviewableKind, normalizeError, resolveBreadcrumbsFit, resolveBreadcrumbsLayout, resolveGrConfig, runFieldRules, setByPath, sizeFromPointer, teardownDialogService, titleWhenTruncated, useAnnouncer, useComboboxNavigation, useDialogService, useDismissible, useDragGesture, useDragSort, useFloating, useFocusTrap, useGrButtonGroup, useGrComponentDefaults, useGrComponentProp, useGrComponentSize, useGrConfig, useGrFormContext, useGrFormControl, useGrFormFieldContext, useGrThemeAttrs, useGranularityTranslations, useOverlayLayer, usePortalTarget, useResponseError, useRovingFocus, useScrollSpy, useTheme, useToast, useTree, useVirtualList, vAutofocus, vAutosize, vClickOutside, vDropzone, vHotkey, vLoading };
|
|
221
|
+
export { FileValidationError, GRANULARITY_THEME_STATE, GRANULARITY_TOAST_STATE, GR_KBD_TOKENS, GR_TONES, GrAffix_default as GrAffix, GrAlert_default as GrAlert, GrAutocomplete_default as GrAutocomplete, GrAvatar_default as GrAvatar, GrAvatarGroup_default as GrAvatarGroup, GrBadge_default as GrBadge, GrBadgeWrap_default as GrBadgeWrap, GrBottomNav_default as GrBottomNav, GrBreadcrumbs_default as GrBreadcrumbs, GrButton_default as GrButton, GrButtonGroup_default as GrButtonGroup, GrCard_default as GrCard, GrCarousel_default as GrCarousel, GrCarouselSlide_default as GrCarouselSlide, GrCheckbox_default as GrCheckbox, GrCheckboxGroup_default as GrCheckboxGroup, GrChip_default as GrChip, GrChipGroup_default as GrChipGroup, GrCollapse_default as GrCollapse, GrCollapseItem_default as GrCollapseItem, GrColorPicker_default as GrColorPicker, GrCommandPalette_default as GrCommandPalette, GrConfigProvider_default as GrConfigProvider, GrConfirmDialog_default as GrConfirmDialog, GrContextMenu_default as GrContextMenu, GrDataTable_default as GrDataTable, GrDelta_default as GrDelta, GrDescriptionList_default as GrDescriptionList, GrDialog_default as GrDialog, GrDialogCloseButton_default as GrDialogCloseButton, GrDialogFooter_default as GrDialogFooter, GrDialogHeader_default as GrDialogHeader, GrDialogServiceHost_default as GrDialogServiceHost, GrDivider_default as GrDivider, GrDrawer_default as GrDrawer, GrDropdown_default as GrDropdown, GrDropdownMenu_default as GrDropdownMenu, GrDropdownMenuColumn_default as GrDropdownMenuColumn, GrDropdownMenuColumns_default as GrDropdownMenuColumns, GrDropdownMenuDivider_default as GrDropdownMenuDivider, GrDropdownMenuGroup_default as GrDropdownMenuGroup, GrDropdownMenuHeader_default as GrDropdownMenuHeader, GrDropdownMenuItem_default as GrDropdownMenuItem, GrDropdownMenuList_default as GrDropdownMenuList, GrEmptyState_default as GrEmptyState, GrFilePreview_default as GrFilePreview, GrFileUpload_default as GrFileUpload, GrForm_default as GrForm, GrFormErrorBanner_default as GrFormErrorBanner, GrFormField_default as GrFormField, GrFormFile_default as GrFormFile, GrFormSection_default as GrFormSection, GrIcon_default as GrIcon, GrImageViewer_default as GrImageViewer, GrInput_default as GrInput, GrInputTag_default as GrInputTag, GrJsonViewer_default as GrJsonViewer, GrKbd_default as GrKbd, GrLink_default as GrLink, GrList_default as GrList, GrListItem_default as GrListItem, GrLoading_default as GrLoading, GrModal_default as GrModal, GrNavbar_default as GrNavbar, GrNumberInput_default as GrNumberInput, GrOtpInput_default as GrOtpInput, GrPagination_default as GrPagination, GrPopover_default as GrPopover, GrProgressBar_default as GrProgressBar, GrProgressCircle_default as GrProgressCircle, GrPromptDialog_default as GrPromptDialog, GrRadio_default as GrRadio, GrRadioGroup_default as GrRadioGroup, GrRating_default as GrRating, GrResponseErrorBanner_default as GrResponseErrorBanner, GrScrollSpy_default as GrScrollSpy, GrSegmented_default as GrSegmented, GrSelect_default as GrSelect, GrSidebar_default as GrSidebar, GrSidebarGroup_default as GrSidebarGroup, GrSidebarItem_default as GrSidebarItem, GrSkeleton_default as GrSkeleton, GrSlider_default as GrSlider, GrSortableList_default as GrSortableList, GrSplitter_default as GrSplitter, GrStatistic_default as GrStatistic, GrSteps_default as GrSteps, GrSwitch_default as GrSwitch, GrTabPanel_default as GrTabPanel, GrTabPanels_default as GrTabPanels, GrTable_default as GrTable, GrTabs_default as GrTabs, GrTextarea_default as GrTextarea, GrTimeline_default as GrTimeline, GrTimelineItem_default as GrTimelineItem, GrToaster_default as GrToaster, GrTooltip_default as GrTooltip, GrTransfer_default as GrTransfer, GrTree_default as GrTree, GrTreeSections_default as GrTreeSections, GrTreeSelect_default as GrTreeSelect, GrUploadAbortError, GrUploadErrorBanner_default as GrUploadErrorBanner, GrUploadHttpError, GrValue_default as GrValue, coreResponseErrorParsers, createGrFormMessageResolver, createLoading, createResponseErrorClassifier, deltaDirection, deltaTone, dialogService, extendDefaultParsers, fileKindOf, findKbdToken, formatBadgeValue, formatStatisticValue, getByPath, grAffixConfig, grAffixSafelist, grAlertConfig, grAutocompleteConfig, grAutocompleteSafelist, grAvatarConfig, grAvatarSafelist, grBadgeConfig, grBadgeSafelist, grBadgeWrapConfig, grBadgeWrapSafelist, grBottomNavConfig, grBottomNavSafelist, grBreadcrumbsConfig, grBreadcrumbsSafelist, grButtonConfig, grButtonGroupConfig, grButtonSafelist, grCardConfig, grCardSafelist, grCarouselConfig, grCarouselSafelist, grCheckboxConfig, grCheckboxGroupConfig, grCheckboxSafelist, grChipConfig, grChipGroupConfig, grChipGroupSafelist, grChipSafelist, grCollapseConfig, grCollapseSafelist, grColorPickerConfig, grColorPickerSafelist, grCommandPaletteConfig, grCommandPaletteSafelist, grConfigProviderConfig, grConfirmDialogConfig, grContextMenuConfig, grDataTableConfig, grDataTableSafelist, grDeltaConfig, grDeltaSafelist, grDescriptionListConfig, grDescriptionListSafelist, grDialogSafelist, grDialogServiceConfig, grDividerConfig, grDividerSafelist, grDrawerConfig, grDrawerSafelist, grDropdownConfig, grDropdownMenuConfig, grDropdownMenuSafelist, grDropdownSafelist, grEmptyStateConfig, grEmptyStateSafelist, grFilePreviewConfig, grFilePreviewSafelist, grFileUploadConfig, grFileUploadSafelist, grFormConfig, grFormFieldConfig, grFormFieldSafelist, grFormFileConfig, grFormFileSafelist, grFormSectionConfig, grFormSectionSafelist, grIconConfig, grIconSafelist, grImageViewerConfig, grImageViewerSafelist, grInputConfig, grInputSafelist, grInputTagConfig, grInputTagSafelist, grJsonViewerConfig, grJsonViewerSafelist, grKbdConfig, grKbdSafelist, grLinkConfig, grLinkSafelist, grListConfig, grListSafelist, grLoadingConfig, grLoadingSafelist, grModalConfig, grModalSafelist, grNavbarConfig, grNavbarSafelist, grNumberInputConfig, grNumberInputSafelist, grOtpInputConfig, grOtpInputSafelist, grPaginationConfig, grPaginationSafelist, grPopoverConfig, grPopoverSafelist, grProgressBarConfig, grProgressBarSafelist, grProgressCircleConfig, grProgressCircleSafelist, grPromptDialogConfig, grRadioConfig, grRadioGroupConfig, grRadioSafelist, grRatingConfig, grRatingSafelist, grScrollSpyConfig, grScrollSpySafelist, grSegmentedConfig, grSegmentedSafelist, grSelectConfig, grSelectSafelist, grSidebarConfig, grSidebarSafelist, grSkeletonConfig, grSliderConfig, grSliderSafelist, grSortableListConfig, grSortableListSafelist, grSplitterConfig, grSplitterSafelist, grStatisticConfig, grStatisticSafelist, grStepsConfig, grStepsSafelist, grSwitchConfig, grSwitchSafelist, grTabPanelsConfig, grTableConfig, grTableSafelist, grTabsConfig, grTabsSafelist, grTextareaConfig, grTextareaSafelist, grTimelineConfig, grTimelineSafelist, grToasterConfig, grToasterSafelist, grTooltipConfig, grTooltipSafelist, grTransferConfig, grTransferSafelist, grTreeConfig, grTreeSafelist, grTreeSectionsConfig, grTreeSectionsSafelist, grTreeSelectConfig, grTreeSelectSafelist, grTreeViewVars, grValueConfig, grValueSafelist, granularityDialogServicePlugin, granularityThemePlugin, granularityToastPlugin, initThemeEarly, initialsFrom, isEmpty, isPreviewableKind, normalizeError, resolveBreadcrumbsFit, resolveBreadcrumbsLayout, resolveGrConfig, runFieldRules, setByPath, sizeFromPointer, teardownDialogService, titleWhenTruncated, useAnnouncer, useComboboxNavigation, useDialogService, useDismissible, useDragGesture, useDragSort, useFloating, useFocusTrap, useGrButtonGroup, useGrComponentDefaults, useGrComponentProp, useGrComponentSize, useGrConfig, useGrFormContext, useGrFormControl, useGrFormFieldContext, useGrThemeAttrs, useGranularityTranslations, useOverlayLayer, usePortalTarget, useResponseError, useRovingFocus, useScrollSpy, useTheme, useToast, useTree, useVirtualList, vAutofocus, vAutosize, vClickOutside, vDropzone, vHotkey, vLoading };
|
package/dist/theme.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as grThemeTokens, n as grDerivedTokens, t as grComponentTokens } from "./chunks/generated-
|
|
1
|
+
import { a as grThemeTokens, n as grDerivedTokens, t as grComponentTokens } from "./chunks/generated-CxvC5O0V.js";
|
|
2
2
|
//#region src/theme/color.ts
|
|
3
3
|
function parseHex(value) {
|
|
4
4
|
const match = value.trim().match(/^#([\da-f]{3}|[\da-f]{6})$/i);
|
package/dist/tokens.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as grThemeTokens, i as grThemeNames, n as grDerivedTokens, r as grFoundationTokens, t as grComponentTokens } from "./chunks/generated-
|
|
1
|
+
import { a as grThemeTokens, i as grThemeNames, n as grDerivedTokens, r as grFoundationTokens, t as grComponentTokens } from "./chunks/generated-CxvC5O0V.js";
|
|
2
2
|
export { grComponentTokens, grDerivedTokens, grFoundationTokens, grThemeNames, grThemeTokens };
|
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
export type { GrBadgeRadius, GrBadgeSize, GrBadgeTone } from './grBadgeStyles';
|
|
2
|
-
import { type GrBadgeRadius, type GrBadgeSize, type GrBadgeTone } from './grBadgeStyles';
|
|
2
|
+
import { type GrBadgeDotTone, type GrBadgeRadius, type GrBadgeSize, type GrBadgeTone } from './grBadgeStyles';
|
|
3
3
|
export interface GrBadgeProps {
|
|
4
4
|
tone?: GrBadgeTone;
|
|
5
5
|
dark?: boolean;
|
|
6
6
|
size?: GrBadgeSize;
|
|
7
7
|
radius?: GrBadgeRadius;
|
|
8
|
+
/**
|
|
9
|
+
* Точка-маркер перед подписью: «● Активен».
|
|
10
|
+
*
|
|
11
|
+
* Имя тона красит маркер отдельно от плашки — ради пары «тихая плашка +
|
|
12
|
+
* цветной маркер», из-за которой паттерн и существует. `true` берёт тон
|
|
13
|
+
* самого бейджа.
|
|
14
|
+
*
|
|
15
|
+
* На заливке (`dark`) маркер всегда цвета текста: тон там слился бы с
|
|
16
|
+
* подложкой, взятой из того же слоя.
|
|
17
|
+
*/
|
|
18
|
+
dot?: GrBadgeDotTone | boolean;
|
|
8
19
|
}
|
|
9
20
|
type __VLS_Slots = {
|
|
10
21
|
/** Содержимое метки. */
|
|
@@ -26,16 +37,19 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
26
37
|
dark: boolean;
|
|
27
38
|
size: undefined;
|
|
28
39
|
radius: undefined;
|
|
40
|
+
dot: boolean;
|
|
29
41
|
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<GrBadgeProps>, {
|
|
30
42
|
tone: undefined;
|
|
31
43
|
dark: boolean;
|
|
32
44
|
size: undefined;
|
|
33
45
|
radius: undefined;
|
|
46
|
+
dot: boolean;
|
|
34
47
|
}>>> & Readonly<{}>, {
|
|
35
48
|
tone: GrBadgeTone;
|
|
36
49
|
size: GrBadgeSize;
|
|
37
50
|
radius: GrBadgeRadius;
|
|
38
51
|
dark: boolean;
|
|
52
|
+
dot: GrBadgeDotTone | boolean;
|
|
39
53
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
40
54
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
41
55
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
import type { GrComponentSize } from '../shared/sizes';
|
|
2
2
|
import type { GrTone } from '../shared/tones';
|
|
3
3
|
export type GrBadgeTone = GrTone;
|
|
4
|
+
/**
|
|
5
|
+
* Тон маркера — отдельным литеральным перечислением, а не `GrTone`.
|
|
6
|
+
*
|
|
7
|
+
* Компилятор SFC выводит рантайм-типы пропов из TypeScript, но `GrTone` это
|
|
8
|
+
* `typeof GR_TONES[number]`, и развернуть его в конструкторы он не умеет. У
|
|
9
|
+
* `dot?: GrTone | boolean` из объединения выживал один `Boolean`, и строковый
|
|
10
|
+
* тон отбраковывался предупреждением Vue у каждого потребителя — при том, что
|
|
11
|
+
* компонент работал. Литеральное объединение разрешается и даёт
|
|
12
|
+
* `type: [Boolean, String]`; так же написан `showTooltip` у `GrSlider`.
|
|
13
|
+
*
|
|
14
|
+
* От расхождения с `GR_TONES` держит `assertDotToneCoversTones` ниже: списки
|
|
15
|
+
* обязаны совпадать в обе стороны, иначе `vue-tsc` роняет сборку.
|
|
16
|
+
*/
|
|
17
|
+
export type GrBadgeDotTone = 'primary' | 'neutral' | 'success' | 'warning' | 'danger' | 'info' | 'slate' | 'azure';
|
|
18
|
+
type AssertMutual<A, B> = [A] extends [B] ? ([B] extends [A] ? true : never) : never;
|
|
19
|
+
export declare const assertDotToneCoversTones: AssertMutual<GrBadgeDotTone, GrTone>;
|
|
4
20
|
export type GrBadgeSize = GrComponentSize;
|
|
5
21
|
export type GrBadgeRadius = 'square' | 'semi' | 'round';
|
|
6
22
|
export declare const sizeClassBySize: Record<GrBadgeSize, string>;
|
|
@@ -42,3 +58,44 @@ export declare function grBadgeClass(options: {
|
|
|
42
58
|
size: GrBadgeSize;
|
|
43
59
|
radius: GrBadgeRadius;
|
|
44
60
|
}): string;
|
|
61
|
+
/**
|
|
62
|
+
* Точка-маркер перед подписью.
|
|
63
|
+
*
|
|
64
|
+
* Кружок мельче иконки и растёт медленнее: маркер обязан оставаться маркером,
|
|
65
|
+
* а не превращаться в третий элемент строки. Повтор значений на концах шкалы —
|
|
66
|
+
* тот же приём, что у `badgeIconSizeClassBySize`.
|
|
67
|
+
*/
|
|
68
|
+
export declare const badgeDotSizeClassBySize: Record<GrBadgeSize, string>;
|
|
69
|
+
/** Маркер не жмётся: подпись бейджа не переносится, сжиматься нечему. */
|
|
70
|
+
export declare const badgeDotClass = "shrink-0 rounded-[var(--gr-radius-full)]";
|
|
71
|
+
/**
|
|
72
|
+
* Маркер на мягкой подложке красится **тем же покомпонентным слоем**, что и
|
|
73
|
+
* заливка filled-бейджа, и это не экономия на токенах.
|
|
74
|
+
*
|
|
75
|
+
* Роль тона напрямую здесь не работает ни в одном виде, и обе ветки измерены:
|
|
76
|
+
* `--gr-{tone}` в светлой теме — яркая заливка под тёмный текст, как маркер она
|
|
77
|
+
* не берёт 3:1 **ни на одной** подложке (`success` 2.06–2.32, `warning`
|
|
78
|
+
* 2.27–2.56); `--gr-{tone}-solid` берёт светлую тему и заваливает тёмную
|
|
79
|
+
* (до 1.37). Слой `--gr-badge-{tone}-bg` как раз и означает «насыщенный вес,
|
|
80
|
+
* который читается в этой теме»: `-solid` в светлой, роль тона в тёмной.
|
|
81
|
+
*
|
|
82
|
+
* На нём проходят все 128 пар «тон маркера × тон бейджа × тема», включая
|
|
83
|
+
* одноимённую, — поэтому булев `dot` берёт тон самого бейджа, а не отдельный
|
|
84
|
+
* цвет. Гейт — `__tests__/grBadgeContrast.test.ts`.
|
|
85
|
+
*/
|
|
86
|
+
export declare const badgeDotToneClass: Record<GrBadgeTone, string>;
|
|
87
|
+
/**
|
|
88
|
+
* Маркер на **заливке** — цветом текста бейджа.
|
|
89
|
+
*
|
|
90
|
+
* Тон здесь не годится по построению: подложка filled-бейджа сама берётся из
|
|
91
|
+
* `--gr-badge-{tone}-bg`, и маркер того же тона слился бы с ней в один цвет.
|
|
92
|
+
* `currentColor` равен тексту бейджа, а он поверен на AA 4.5:1 — то есть
|
|
93
|
+
* заведомо проходит порог для графики.
|
|
94
|
+
*/
|
|
95
|
+
export declare const badgeDotCurrentColorClass = "bg-[currentColor]";
|
|
96
|
+
export declare function badgeDotClassFor(options: {
|
|
97
|
+
tone: GrBadgeTone;
|
|
98
|
+
dark: boolean;
|
|
99
|
+
size: GrBadgeSize;
|
|
100
|
+
}): string;
|
|
101
|
+
export {};
|
|
@@ -2,6 +2,6 @@ export { default } from './GrBadge.vue';
|
|
|
2
2
|
export { default as GrBadge } from './GrBadge.vue';
|
|
3
3
|
export { grBadgeConfig } from './config';
|
|
4
4
|
export type { GrBadgeConfigurableProps } from './defaults';
|
|
5
|
-
export type { GrBadgeRadius, GrBadgeSize, GrBadgeTone } from './grBadgeStyles';
|
|
5
|
+
export type { GrBadgeDotTone, GrBadgeRadius, GrBadgeSize, GrBadgeTone } from './grBadgeStyles';
|
|
6
6
|
export { grBadgeSafelist } from './safelist';
|
|
7
7
|
export type { GrBadgeProps } from './GrBadge.vue';
|