@x-plat/design-system 0.12.0 → 0.13.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/dist/components/AutoResizeTextArea/index.cjs +2 -2
- package/dist/components/AutoResizeTextArea/index.js +2 -2
- package/dist/components/ChatInput/index.cjs +2 -2
- package/dist/components/ChatInput/index.js +2 -2
- package/dist/components/CheckBox/index.cjs +2 -2
- package/dist/components/CheckBox/index.js +2 -2
- package/dist/components/DatePicker/index.cjs +109 -75
- package/dist/components/DatePicker/index.d.cts +19 -0
- package/dist/components/DatePicker/index.d.ts +19 -0
- package/dist/components/DatePicker/index.js +109 -75
- package/dist/components/Editor/index.css +3 -0
- package/dist/components/FieldMessage/index.cjs +2 -2
- package/dist/components/FieldMessage/index.d.cts +8 -0
- package/dist/components/FieldMessage/index.d.ts +8 -0
- package/dist/components/FieldMessage/index.js +2 -2
- package/dist/components/FileUpload/index.cjs +10 -6
- package/dist/components/FileUpload/index.d.cts +15 -2
- package/dist/components/FileUpload/index.d.ts +15 -2
- package/dist/components/FileUpload/index.js +10 -6
- package/dist/components/ImageSelector/index.cjs +7 -6
- package/dist/components/ImageSelector/index.d.cts +15 -2
- package/dist/components/ImageSelector/index.d.ts +15 -2
- package/dist/components/ImageSelector/index.js +7 -6
- package/dist/components/Input/index.cjs +2 -2
- package/dist/components/Input/index.d.cts +4 -0
- package/dist/components/Input/index.d.ts +4 -0
- package/dist/components/Input/index.js +2 -2
- package/dist/components/Radio/index.cjs +2 -2
- package/dist/components/Radio/index.js +2 -2
- package/dist/components/Select/index.cjs +2 -2
- package/dist/components/Select/index.d.cts +1 -2
- package/dist/components/Select/index.d.ts +1 -2
- package/dist/components/Select/index.js +2 -2
- package/dist/components/Switch/index.cjs +2 -2
- package/dist/components/Switch/index.js +2 -2
- package/dist/components/TextArea/index.cjs +2 -2
- package/dist/components/TextArea/index.js +2 -2
- package/dist/components/TimePicker/index.cjs +2 -2
- package/dist/components/TimePicker/index.js +2 -2
- package/dist/components/index.cjs +122 -83
- package/dist/components/index.css +3 -0
- package/dist/components/index.js +122 -83
- package/dist/index.cjs +122 -83
- package/dist/index.css +3 -0
- package/dist/index.js +122 -83
- package/guidelines/Guidelines.md +12 -0
- package/guidelines/MIGRATION.md +270 -0
- package/guidelines/components/datepicker.md +26 -0
- package/guidelines/components/file-media.md +21 -4
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -6031,11 +6031,11 @@ var FieldMessage = (props) => {
|
|
|
6031
6031
|
FieldMessage.displayName = "FieldMessage";
|
|
6032
6032
|
var FieldMessage_default = FieldMessage;
|
|
6033
6033
|
var Field = (props) => {
|
|
6034
|
-
const { label, required = false, htmlFor, validations, children } = props;
|
|
6034
|
+
const { label, required = false, htmlFor, labelId, validations, children } = props;
|
|
6035
6035
|
const hasMessages = !!validations && validations.length > 0;
|
|
6036
6036
|
if (!label && !hasMessages) return /* @__PURE__ */ (0, import_jsx_runtime297.jsx)(import_jsx_runtime297.Fragment, { children });
|
|
6037
6037
|
return /* @__PURE__ */ (0, import_jsx_runtime297.jsxs)("div", { className: "lib-xplat-field", children: [
|
|
6038
|
-
label && /* @__PURE__ */ (0, import_jsx_runtime297.jsxs)("label", { className: "lib-xplat-field-label", htmlFor, children: [
|
|
6038
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime297.jsxs)("label", { className: "lib-xplat-field-label", id: labelId, htmlFor, children: [
|
|
6039
6039
|
label,
|
|
6040
6040
|
required && /* @__PURE__ */ (0, import_jsx_runtime297.jsx)("span", { className: "required", "aria-hidden": "true", children: "*" })
|
|
6041
6041
|
] }),
|
|
@@ -7815,8 +7815,12 @@ var SingleDatePicker = (props) => {
|
|
|
7815
7815
|
highlightDates = [],
|
|
7816
7816
|
locale = "ko",
|
|
7817
7817
|
rangeStart,
|
|
7818
|
-
rangeEnd
|
|
7818
|
+
rangeEnd,
|
|
7819
|
+
label,
|
|
7820
|
+
required,
|
|
7821
|
+
validations
|
|
7819
7822
|
} = props;
|
|
7823
|
+
const labelId = import_react12.default.useId();
|
|
7820
7824
|
const initialYear = value?.getFullYear();
|
|
7821
7825
|
const initialMonth = value?.getMonth();
|
|
7822
7826
|
const { year, month, days, goToPrevMonth, goToNextMonth, setYear, setMonth } = useCalendar(
|
|
@@ -7879,10 +7883,12 @@ var SingleDatePicker = (props) => {
|
|
|
7879
7883
|
const monthLabels = MONTH_LABELS[locale];
|
|
7880
7884
|
const titleText = pickerMode === "days" ? locale === "ko" ? `${year}\uB144 ${monthLabels[month]}` : `${monthLabels[month]} ${year}` : pickerMode === "months" ? `${year}` : `${yearRangeStart} - ${yearRangeStart + 11}`;
|
|
7881
7885
|
const hasRange = rangeStart != null && rangeEnd != null;
|
|
7882
|
-
|
|
7886
|
+
const calendar = /* @__PURE__ */ (0, import_jsx_runtime314.jsxs)(
|
|
7883
7887
|
"div",
|
|
7884
7888
|
{
|
|
7885
7889
|
className: clsx_default("lib-xplat-datepicker", "single"),
|
|
7890
|
+
role: "group",
|
|
7891
|
+
"aria-labelledby": label ? labelId : void 0,
|
|
7886
7892
|
children: [
|
|
7887
7893
|
/* @__PURE__ */ (0, import_jsx_runtime314.jsxs)("div", { className: "datepicker-header", children: [
|
|
7888
7894
|
/* @__PURE__ */ (0, import_jsx_runtime314.jsx)("button", { className: "datepicker-nav", onClick: handlePrev, type: "button", children: /* @__PURE__ */ (0, import_jsx_runtime314.jsx)(ChevronLeftIcon_default, {}) }),
|
|
@@ -7903,18 +7909,18 @@ var SingleDatePicker = (props) => {
|
|
|
7903
7909
|
y
|
|
7904
7910
|
);
|
|
7905
7911
|
}) }),
|
|
7906
|
-
pickerMode === "months" && /* @__PURE__ */ (0, import_jsx_runtime314.jsx)("div", { className: "datepicker-picker-grid", children: monthLabels.map((
|
|
7912
|
+
pickerMode === "months" && /* @__PURE__ */ (0, import_jsx_runtime314.jsx)("div", { className: "datepicker-picker-grid", children: monthLabels.map((label2, i) => /* @__PURE__ */ (0, import_jsx_runtime314.jsx)(
|
|
7907
7913
|
"button",
|
|
7908
7914
|
{
|
|
7909
7915
|
type: "button",
|
|
7910
7916
|
className: clsx_default("datepicker-picker-cell", i === month && "active"),
|
|
7911
7917
|
onClick: () => handleMonthSelect(i),
|
|
7912
|
-
children:
|
|
7918
|
+
children: label2
|
|
7913
7919
|
},
|
|
7914
7920
|
i
|
|
7915
7921
|
)) }),
|
|
7916
7922
|
pickerMode === "days" && /* @__PURE__ */ (0, import_jsx_runtime314.jsxs)(import_jsx_runtime314.Fragment, { children: [
|
|
7917
|
-
/* @__PURE__ */ (0, import_jsx_runtime314.jsx)("div", { className: "datepicker-weekdays", children: weekdays.map((
|
|
7923
|
+
/* @__PURE__ */ (0, import_jsx_runtime314.jsx)("div", { className: "datepicker-weekdays", children: weekdays.map((label2, i) => /* @__PURE__ */ (0, import_jsx_runtime314.jsx)(
|
|
7918
7924
|
"div",
|
|
7919
7925
|
{
|
|
7920
7926
|
className: clsx_default(
|
|
@@ -7922,9 +7928,9 @@ var SingleDatePicker = (props) => {
|
|
|
7922
7928
|
i === 0 && "sunday",
|
|
7923
7929
|
i === 6 && "saturday"
|
|
7924
7930
|
),
|
|
7925
|
-
children:
|
|
7931
|
+
children: label2
|
|
7926
7932
|
},
|
|
7927
|
-
|
|
7933
|
+
label2
|
|
7928
7934
|
)) }),
|
|
7929
7935
|
/* @__PURE__ */ (0, import_jsx_runtime314.jsx)("div", { className: "datepicker-grid", children: days.map((day, idx) => {
|
|
7930
7936
|
const t = day.date.getTime();
|
|
@@ -7956,6 +7962,7 @@ var SingleDatePicker = (props) => {
|
|
|
7956
7962
|
]
|
|
7957
7963
|
}
|
|
7958
7964
|
);
|
|
7965
|
+
return /* @__PURE__ */ (0, import_jsx_runtime314.jsx)(Field, { label, required, labelId, validations, children: calendar });
|
|
7959
7966
|
};
|
|
7960
7967
|
SingleDatePicker.displayName = "SingleDatePicker";
|
|
7961
7968
|
var SingleDatePicker_default = SingleDatePicker;
|
|
@@ -7970,7 +7977,18 @@ var formatDate = (date) => {
|
|
|
7970
7977
|
return `${y}/${m}/${d}`;
|
|
7971
7978
|
};
|
|
7972
7979
|
var InputDatePicker = (props) => {
|
|
7973
|
-
const {
|
|
7980
|
+
const {
|
|
7981
|
+
value,
|
|
7982
|
+
onChange,
|
|
7983
|
+
minDate,
|
|
7984
|
+
maxDate,
|
|
7985
|
+
disabled,
|
|
7986
|
+
locale = "ko",
|
|
7987
|
+
placeholder,
|
|
7988
|
+
label,
|
|
7989
|
+
required,
|
|
7990
|
+
validations
|
|
7991
|
+
} = props;
|
|
7974
7992
|
const [isOpen, setIsOpen] = import_react13.default.useState(false);
|
|
7975
7993
|
const [tempDate, setTempDate] = import_react13.default.useState(value ?? /* @__PURE__ */ new Date());
|
|
7976
7994
|
const handleOpen = () => {
|
|
@@ -7996,6 +8014,9 @@ var InputDatePicker = (props) => {
|
|
|
7996
8014
|
placeholder,
|
|
7997
8015
|
suffix: /* @__PURE__ */ (0, import_jsx_runtime315.jsx)(CalenderIcon_default, {}),
|
|
7998
8016
|
disabled,
|
|
8017
|
+
label,
|
|
8018
|
+
required,
|
|
8019
|
+
validations,
|
|
7999
8020
|
readOnly: true
|
|
8000
8021
|
}
|
|
8001
8022
|
) }),
|
|
@@ -8127,8 +8148,12 @@ var RangePicker = (props) => {
|
|
|
8127
8148
|
onChange,
|
|
8128
8149
|
minDate,
|
|
8129
8150
|
maxDate,
|
|
8130
|
-
locale = "ko"
|
|
8151
|
+
locale = "ko",
|
|
8152
|
+
label,
|
|
8153
|
+
required,
|
|
8154
|
+
validations
|
|
8131
8155
|
} = props;
|
|
8156
|
+
const labelId = import_react16.default.useId();
|
|
8132
8157
|
const [activeTab, setActiveTab] = import_react16.default.useState("start");
|
|
8133
8158
|
const handleStartChange = (date) => {
|
|
8134
8159
|
if (!date) return;
|
|
@@ -8142,70 +8167,79 @@ var RangePicker = (props) => {
|
|
|
8142
8167
|
};
|
|
8143
8168
|
const startMaxDate = maxDate && endDate < maxDate ? endDate : endDate;
|
|
8144
8169
|
const endMinDate = minDate && startDate > minDate ? startDate : startDate;
|
|
8145
|
-
|
|
8146
|
-
|
|
8147
|
-
|
|
8148
|
-
|
|
8149
|
-
|
|
8150
|
-
|
|
8151
|
-
|
|
8152
|
-
|
|
8153
|
-
|
|
8154
|
-
|
|
8155
|
-
|
|
8156
|
-
|
|
8157
|
-
|
|
8158
|
-
|
|
8159
|
-
|
|
8160
|
-
|
|
8161
|
-
|
|
8162
|
-
|
|
8163
|
-
|
|
8164
|
-
|
|
8165
|
-
|
|
8166
|
-
|
|
8167
|
-
|
|
8168
|
-
|
|
8169
|
-
|
|
8170
|
-
|
|
8171
|
-
|
|
8172
|
-
|
|
8173
|
-
|
|
8174
|
-
|
|
8175
|
-
|
|
8176
|
-
|
|
8177
|
-
|
|
8178
|
-
|
|
8179
|
-
|
|
8180
|
-
|
|
8181
|
-
|
|
8182
|
-
|
|
8183
|
-
|
|
8184
|
-
|
|
8185
|
-
|
|
8186
|
-
|
|
8187
|
-
|
|
8188
|
-
|
|
8189
|
-
|
|
8190
|
-
|
|
8191
|
-
|
|
8192
|
-
|
|
8193
|
-
|
|
8194
|
-
|
|
8195
|
-
|
|
8196
|
-
|
|
8197
|
-
|
|
8198
|
-
|
|
8199
|
-
|
|
8200
|
-
|
|
8201
|
-
|
|
8202
|
-
|
|
8203
|
-
|
|
8204
|
-
|
|
8205
|
-
|
|
8206
|
-
|
|
8207
|
-
|
|
8208
|
-
|
|
8170
|
+
const calendar = /* @__PURE__ */ (0, import_jsx_runtime318.jsxs)(
|
|
8171
|
+
"div",
|
|
8172
|
+
{
|
|
8173
|
+
className: clsx_default("lib-xplat-datepicker", "range"),
|
|
8174
|
+
role: "group",
|
|
8175
|
+
"aria-labelledby": label ? labelId : void 0,
|
|
8176
|
+
children: [
|
|
8177
|
+
/* @__PURE__ */ (0, import_jsx_runtime318.jsx)("div", { className: "datepicker-range-tabs", children: /* @__PURE__ */ (0, import_jsx_runtime318.jsx)(
|
|
8178
|
+
Tab_default,
|
|
8179
|
+
{
|
|
8180
|
+
activeIndex: activeTab === "start" ? 0 : 1,
|
|
8181
|
+
tabs: [
|
|
8182
|
+
{ value: "start", title: locale === "ko" ? "\uC2DC\uC791\uC77C" : "Start" },
|
|
8183
|
+
{ value: "end", title: locale === "ko" ? "\uC885\uB8CC\uC77C" : "End" }
|
|
8184
|
+
],
|
|
8185
|
+
onChange: (tab) => setActiveTab(tab.value),
|
|
8186
|
+
type: "toggle",
|
|
8187
|
+
size: "sm"
|
|
8188
|
+
}
|
|
8189
|
+
) }),
|
|
8190
|
+
/* @__PURE__ */ (0, import_jsx_runtime318.jsxs)("div", { className: "datepicker-range-panels", children: [
|
|
8191
|
+
/* @__PURE__ */ (0, import_jsx_runtime318.jsx)(
|
|
8192
|
+
SingleDatePicker_default,
|
|
8193
|
+
{
|
|
8194
|
+
value: startDate,
|
|
8195
|
+
onChange: handleStartChange,
|
|
8196
|
+
minDate,
|
|
8197
|
+
maxDate: startMaxDate,
|
|
8198
|
+
rangeStart: startDate,
|
|
8199
|
+
rangeEnd: endDate,
|
|
8200
|
+
locale
|
|
8201
|
+
}
|
|
8202
|
+
),
|
|
8203
|
+
/* @__PURE__ */ (0, import_jsx_runtime318.jsx)(
|
|
8204
|
+
SingleDatePicker_default,
|
|
8205
|
+
{
|
|
8206
|
+
value: endDate,
|
|
8207
|
+
onChange: handleEndChange,
|
|
8208
|
+
minDate: endMinDate,
|
|
8209
|
+
maxDate,
|
|
8210
|
+
rangeStart: startDate,
|
|
8211
|
+
rangeEnd: endDate,
|
|
8212
|
+
locale
|
|
8213
|
+
}
|
|
8214
|
+
)
|
|
8215
|
+
] }),
|
|
8216
|
+
/* @__PURE__ */ (0, import_jsx_runtime318.jsx)("div", { className: "datepicker-range-mobile", children: activeTab === "start" ? /* @__PURE__ */ (0, import_jsx_runtime318.jsx)(
|
|
8217
|
+
SingleDatePicker_default,
|
|
8218
|
+
{
|
|
8219
|
+
value: startDate,
|
|
8220
|
+
onChange: handleStartChange,
|
|
8221
|
+
minDate,
|
|
8222
|
+
maxDate: startMaxDate,
|
|
8223
|
+
rangeStart: startDate,
|
|
8224
|
+
rangeEnd: endDate,
|
|
8225
|
+
locale
|
|
8226
|
+
}
|
|
8227
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime318.jsx)(
|
|
8228
|
+
SingleDatePicker_default,
|
|
8229
|
+
{
|
|
8230
|
+
value: endDate,
|
|
8231
|
+
onChange: handleEndChange,
|
|
8232
|
+
minDate: endMinDate,
|
|
8233
|
+
maxDate,
|
|
8234
|
+
rangeStart: startDate,
|
|
8235
|
+
rangeEnd: endDate,
|
|
8236
|
+
locale
|
|
8237
|
+
}
|
|
8238
|
+
) })
|
|
8239
|
+
]
|
|
8240
|
+
}
|
|
8241
|
+
);
|
|
8242
|
+
return /* @__PURE__ */ (0, import_jsx_runtime318.jsx)(Field, { label, required, labelId, validations, children: calendar });
|
|
8209
8243
|
};
|
|
8210
8244
|
RangePicker.displayName = "RangePicker";
|
|
8211
8245
|
var RangePicker_default = RangePicker;
|
|
@@ -9978,10 +10012,13 @@ var FileUpload = (props) => {
|
|
|
9978
10012
|
multiple = false,
|
|
9979
10013
|
maxSize,
|
|
9980
10014
|
onChange,
|
|
9981
|
-
|
|
10015
|
+
placeholder = "\uD30C\uC77C\uC744 \uB4DC\uB798\uADF8\uD558\uAC70\uB098 \uD074\uB9AD\uD558\uC5EC \uC5C5\uB85C\uB4DC",
|
|
9982
10016
|
description,
|
|
9983
|
-
validations
|
|
10017
|
+
validations,
|
|
10018
|
+
label,
|
|
10019
|
+
required
|
|
9984
10020
|
} = props;
|
|
10021
|
+
const fieldId = import_react23.default.useId();
|
|
9985
10022
|
const [isDragOver, setIsDragOver] = import_react23.default.useState(false);
|
|
9986
10023
|
const inputRef = import_react23.default.useRef(null);
|
|
9987
10024
|
const handleFiles = (fileList) => {
|
|
@@ -10026,6 +10063,7 @@ var FileUpload = (props) => {
|
|
|
10026
10063
|
"input",
|
|
10027
10064
|
{
|
|
10028
10065
|
ref: inputRef,
|
|
10066
|
+
id: fieldId,
|
|
10029
10067
|
type: "file",
|
|
10030
10068
|
accept,
|
|
10031
10069
|
multiple,
|
|
@@ -10034,12 +10072,12 @@ var FileUpload = (props) => {
|
|
|
10034
10072
|
}
|
|
10035
10073
|
),
|
|
10036
10074
|
/* @__PURE__ */ (0, import_jsx_runtime325.jsx)("div", { className: "upload-icon", children: /* @__PURE__ */ (0, import_jsx_runtime325.jsx)(UploadIcon_default, {}) }),
|
|
10037
|
-
/* @__PURE__ */ (0, import_jsx_runtime325.jsx)("p", { className: "upload-label", children:
|
|
10075
|
+
/* @__PURE__ */ (0, import_jsx_runtime325.jsx)("p", { className: "upload-label", children: placeholder }),
|
|
10038
10076
|
description && /* @__PURE__ */ (0, import_jsx_runtime325.jsx)("p", { className: "upload-description", children: description })
|
|
10039
10077
|
]
|
|
10040
10078
|
}
|
|
10041
10079
|
);
|
|
10042
|
-
return /* @__PURE__ */ (0, import_jsx_runtime325.jsx)(Field, { validations, children: control });
|
|
10080
|
+
return /* @__PURE__ */ (0, import_jsx_runtime325.jsx)(Field, { label, required, htmlFor: fieldId, validations, children: control });
|
|
10043
10081
|
};
|
|
10044
10082
|
FileUpload.displayName = "FileUpload";
|
|
10045
10083
|
var FileUpload_default = FileUpload;
|
|
@@ -10182,7 +10220,8 @@ var HtmlTypeWriter_default = HtmlTypeWriter;
|
|
|
10182
10220
|
var import_react26 = __toESM(require("react"), 1);
|
|
10183
10221
|
var import_jsx_runtime327 = require("react/jsx-runtime");
|
|
10184
10222
|
var ImageSelector = (props) => {
|
|
10185
|
-
const { value,
|
|
10223
|
+
const { value, placeholder, onChange, validations, label, required } = props;
|
|
10224
|
+
const fieldId = import_react26.default.useId();
|
|
10186
10225
|
const [previewUrl, setPreviewUrl] = import_react26.default.useState();
|
|
10187
10226
|
import_react26.default.useEffect(() => {
|
|
10188
10227
|
if (!value) {
|
|
@@ -10212,7 +10251,7 @@ var ImageSelector = (props) => {
|
|
|
10212
10251
|
{
|
|
10213
10252
|
type: "file",
|
|
10214
10253
|
accept: "image/*",
|
|
10215
|
-
id:
|
|
10254
|
+
id: fieldId,
|
|
10216
10255
|
onChange: handleFileChange,
|
|
10217
10256
|
ref: inputRef,
|
|
10218
10257
|
"aria-invalid": hasError(validations) || void 0
|
|
@@ -10224,10 +10263,10 @@ var ImageSelector = (props) => {
|
|
|
10224
10263
|
] }),
|
|
10225
10264
|
/* @__PURE__ */ (0, import_jsx_runtime327.jsx)("div", { className: "content", children: previewUrl ? /* @__PURE__ */ (0, import_jsx_runtime327.jsx)("img", { src: previewUrl, alt: "preview" }) : /* @__PURE__ */ (0, import_jsx_runtime327.jsxs)("div", { className: "skeleton", onClick: handleOpenFileDialog, children: [
|
|
10226
10265
|
/* @__PURE__ */ (0, import_jsx_runtime327.jsx)("div", { className: "icon-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(ImageIcon_default, {}) }),
|
|
10227
|
-
/* @__PURE__ */ (0, import_jsx_runtime327.jsx)("div", { className: "label", children:
|
|
10266
|
+
/* @__PURE__ */ (0, import_jsx_runtime327.jsx)("div", { className: "label", children: placeholder || "\uC774\uBBF8\uC9C0 \uCD94\uAC00\uD558\uAE30" })
|
|
10228
10267
|
] }) })
|
|
10229
10268
|
] });
|
|
10230
|
-
return /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(Field, { validations, children: control });
|
|
10269
|
+
return /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(Field, { label, required, htmlFor: fieldId, validations, children: control });
|
|
10231
10270
|
};
|
|
10232
10271
|
ImageSelector.displayName = "ImageSelector";
|
|
10233
10272
|
var ImageSelector_default = ImageSelector;
|
package/dist/index.css
CHANGED
|
@@ -3612,6 +3612,9 @@
|
|
|
3612
3612
|
color: var(--semantic-text-inverse);
|
|
3613
3613
|
border-color: var(--semantic-surface-brand-default);
|
|
3614
3614
|
}
|
|
3615
|
+
.lib-xplat-editor.readonly .lib-xplat-editor__editable ul.checklist > li::before {
|
|
3616
|
+
cursor: default;
|
|
3617
|
+
}
|
|
3615
3618
|
.lib-xplat-editor__editable .align-center {
|
|
3616
3619
|
text-align: center;
|
|
3617
3620
|
}
|