@cloud-ru/ds-markdown 1.0.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.
Files changed (212) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE +201 -0
  3. package/README.md +273 -0
  4. package/dist/cjs/components/Markdown/CodeBlock.d.ts +9 -0
  5. package/dist/cjs/components/Markdown/CodeBlock.js +58 -0
  6. package/dist/cjs/components/Markdown/Markdown.d.ts +2 -0
  7. package/dist/cjs/components/Markdown/Markdown.js +25 -0
  8. package/dist/cjs/components/Markdown/index.d.ts +1 -0
  9. package/dist/cjs/components/Markdown/index.js +17 -0
  10. package/dist/cjs/components/Markdown/styles.module.css +205 -0
  11. package/dist/cjs/components/MarkdownEditor/MarkdownEditor.d.ts +2 -0
  12. package/dist/cjs/components/MarkdownEditor/MarkdownEditor.js +176 -0
  13. package/dist/cjs/components/MarkdownEditor/index.d.ts +1 -0
  14. package/dist/cjs/components/MarkdownEditor/index.js +17 -0
  15. package/dist/cjs/components/MarkdownEditor/styles.module.css +273 -0
  16. package/dist/cjs/components/Toolbar/Toolbar.d.ts +9 -0
  17. package/dist/cjs/components/Toolbar/Toolbar.js +173 -0
  18. package/dist/cjs/components/Toolbar/constants.d.ts +13 -0
  19. package/dist/cjs/components/Toolbar/constants.js +40 -0
  20. package/dist/cjs/components/Toolbar/hooks/index.d.ts +2 -0
  21. package/dist/cjs/components/Toolbar/hooks/index.js +18 -0
  22. package/dist/cjs/components/Toolbar/hooks/useToolbarHotkeys.d.ts +21 -0
  23. package/dist/cjs/components/Toolbar/hooks/useToolbarHotkeys.js +59 -0
  24. package/dist/cjs/components/Toolbar/hooks/useToolbarOverflow.d.ts +14 -0
  25. package/dist/cjs/components/Toolbar/hooks/useToolbarOverflow.js +87 -0
  26. package/dist/cjs/components/Toolbar/index.d.ts +2 -0
  27. package/dist/cjs/components/Toolbar/index.js +20 -0
  28. package/dist/cjs/components/Toolbar/styles.module.css +17 -0
  29. package/dist/cjs/components/index.d.ts +2 -0
  30. package/dist/cjs/components/index.js +20 -0
  31. package/dist/cjs/constants.d.ts +65 -0
  32. package/dist/cjs/constants.js +67 -0
  33. package/dist/cjs/helperComponents/ButtonHeading/ButtonHeading.d.ts +6 -0
  34. package/dist/cjs/helperComponents/ButtonHeading/ButtonHeading.js +61 -0
  35. package/dist/cjs/helperComponents/ButtonHeading/index.d.ts +1 -0
  36. package/dist/cjs/helperComponents/ButtonHeading/index.js +17 -0
  37. package/dist/cjs/helperComponents/ButtonHeading/styles.module.css +3 -0
  38. package/dist/cjs/helperComponents/Buttons/Buttons.d.ts +10 -0
  39. package/dist/cjs/helperComponents/Buttons/Buttons.js +21 -0
  40. package/dist/cjs/helperComponents/Buttons/index.d.ts +1 -0
  41. package/dist/cjs/helperComponents/Buttons/index.js +17 -0
  42. package/dist/cjs/helperComponents/Buttons/styles.module.css +17 -0
  43. package/dist/cjs/helperComponents/Modals/CustomizeTableModal.d.ts +8 -0
  44. package/dist/cjs/helperComponents/Modals/CustomizeTableModal.js +39 -0
  45. package/dist/cjs/helperComponents/Modals/ImageModal.d.ts +7 -0
  46. package/dist/cjs/helperComponents/Modals/ImageModal.js +44 -0
  47. package/dist/cjs/helperComponents/Modals/LinkModal.d.ts +13 -0
  48. package/dist/cjs/helperComponents/Modals/LinkModal.js +42 -0
  49. package/dist/cjs/helperComponents/Modals/index.d.ts +3 -0
  50. package/dist/cjs/helperComponents/Modals/index.js +19 -0
  51. package/dist/cjs/helperComponents/Modals/styles.module.css +17 -0
  52. package/dist/cjs/helperComponents/PrivateButton/PrivateButton.d.ts +17 -0
  53. package/dist/cjs/helperComponents/PrivateButton/PrivateButton.js +27 -0
  54. package/dist/cjs/helperComponents/PrivateButton/index.d.ts +1 -0
  55. package/dist/cjs/helperComponents/PrivateButton/index.js +17 -0
  56. package/dist/cjs/helperComponents/PrivateButton/styles.module.css +140 -0
  57. package/dist/cjs/helperComponents/TableSelectItem/TableSelectItem.d.ts +11 -0
  58. package/dist/cjs/helperComponents/TableSelectItem/TableSelectItem.js +12 -0
  59. package/dist/cjs/helperComponents/TableSelectItem/index.d.ts +1 -0
  60. package/dist/cjs/helperComponents/TableSelectItem/index.js +17 -0
  61. package/dist/cjs/helperComponents/TableSelectItem/styles.module.css +101 -0
  62. package/dist/cjs/helperComponents/TableSelectSettingsGrid/TableSelectSettingsGrid.d.ts +4 -0
  63. package/dist/cjs/helperComponents/TableSelectSettingsGrid/TableSelectSettingsGrid.js +27 -0
  64. package/dist/cjs/helperComponents/TableSelectSettingsGrid/index.d.ts +1 -0
  65. package/dist/cjs/helperComponents/TableSelectSettingsGrid/index.js +17 -0
  66. package/dist/cjs/helperComponents/TableSelectSettingsGrid/styles.module.css +54 -0
  67. package/dist/cjs/helperComponents/index.d.ts +6 -0
  68. package/dist/cjs/helperComponents/index.js +22 -0
  69. package/dist/cjs/index.d.ts +4 -0
  70. package/dist/cjs/index.js +20 -0
  71. package/dist/cjs/locale/index.d.ts +199 -0
  72. package/dist/cjs/locale/index.js +104 -0
  73. package/dist/cjs/lowlight.d.ts +14 -0
  74. package/dist/cjs/lowlight.js +35 -0
  75. package/dist/cjs/mixins.css +0 -0
  76. package/dist/cjs/package.json +3 -0
  77. package/dist/cjs/rawMarkdownCommands.d.ts +16 -0
  78. package/dist/cjs/rawMarkdownCommands.js +145 -0
  79. package/dist/cjs/style.css +875 -0
  80. package/dist/cjs/styles/syntax.module.css +47 -0
  81. package/dist/cjs/toolbarApi.d.ts +33 -0
  82. package/dist/cjs/toolbarApi.js +100 -0
  83. package/dist/cjs/types.d.ts +52 -0
  84. package/dist/cjs/types.js +2 -0
  85. package/dist/esm/components/Markdown/CodeBlock.d.ts +9 -0
  86. package/dist/esm/components/Markdown/CodeBlock.js +52 -0
  87. package/dist/esm/components/Markdown/Markdown.d.ts +2 -0
  88. package/dist/esm/components/Markdown/Markdown.js +19 -0
  89. package/dist/esm/components/Markdown/index.d.ts +1 -0
  90. package/dist/esm/components/Markdown/index.js +1 -0
  91. package/dist/esm/components/Markdown/styles.module.css +205 -0
  92. package/dist/esm/components/MarkdownEditor/MarkdownEditor.d.ts +2 -0
  93. package/dist/esm/components/MarkdownEditor/MarkdownEditor.js +170 -0
  94. package/dist/esm/components/MarkdownEditor/index.d.ts +1 -0
  95. package/dist/esm/components/MarkdownEditor/index.js +1 -0
  96. package/dist/esm/components/MarkdownEditor/styles.module.css +273 -0
  97. package/dist/esm/components/Toolbar/Toolbar.d.ts +9 -0
  98. package/dist/esm/components/Toolbar/Toolbar.js +167 -0
  99. package/dist/esm/components/Toolbar/constants.d.ts +13 -0
  100. package/dist/esm/components/Toolbar/constants.js +37 -0
  101. package/dist/esm/components/Toolbar/hooks/index.d.ts +2 -0
  102. package/dist/esm/components/Toolbar/hooks/index.js +2 -0
  103. package/dist/esm/components/Toolbar/hooks/useToolbarHotkeys.d.ts +21 -0
  104. package/dist/esm/components/Toolbar/hooks/useToolbarHotkeys.js +56 -0
  105. package/dist/esm/components/Toolbar/hooks/useToolbarOverflow.d.ts +14 -0
  106. package/dist/esm/components/Toolbar/hooks/useToolbarOverflow.js +84 -0
  107. package/dist/esm/components/Toolbar/index.d.ts +2 -0
  108. package/dist/esm/components/Toolbar/index.js +2 -0
  109. package/dist/esm/components/Toolbar/styles.module.css +17 -0
  110. package/dist/esm/components/index.d.ts +2 -0
  111. package/dist/esm/components/index.js +4 -0
  112. package/dist/esm/constants.d.ts +65 -0
  113. package/dist/esm/constants.js +61 -0
  114. package/dist/esm/helperComponents/ButtonHeading/ButtonHeading.d.ts +6 -0
  115. package/dist/esm/helperComponents/ButtonHeading/ButtonHeading.js +55 -0
  116. package/dist/esm/helperComponents/ButtonHeading/index.d.ts +1 -0
  117. package/dist/esm/helperComponents/ButtonHeading/index.js +1 -0
  118. package/dist/esm/helperComponents/ButtonHeading/styles.module.css +3 -0
  119. package/dist/esm/helperComponents/Buttons/Buttons.d.ts +10 -0
  120. package/dist/esm/helperComponents/Buttons/Buttons.js +13 -0
  121. package/dist/esm/helperComponents/Buttons/index.d.ts +1 -0
  122. package/dist/esm/helperComponents/Buttons/index.js +1 -0
  123. package/dist/esm/helperComponents/Buttons/styles.module.css +17 -0
  124. package/dist/esm/helperComponents/Modals/CustomizeTableModal.d.ts +8 -0
  125. package/dist/esm/helperComponents/Modals/CustomizeTableModal.js +33 -0
  126. package/dist/esm/helperComponents/Modals/ImageModal.d.ts +7 -0
  127. package/dist/esm/helperComponents/Modals/ImageModal.js +38 -0
  128. package/dist/esm/helperComponents/Modals/LinkModal.d.ts +13 -0
  129. package/dist/esm/helperComponents/Modals/LinkModal.js +36 -0
  130. package/dist/esm/helperComponents/Modals/index.d.ts +3 -0
  131. package/dist/esm/helperComponents/Modals/index.js +3 -0
  132. package/dist/esm/helperComponents/Modals/styles.module.css +17 -0
  133. package/dist/esm/helperComponents/PrivateButton/PrivateButton.d.ts +17 -0
  134. package/dist/esm/helperComponents/PrivateButton/PrivateButton.js +21 -0
  135. package/dist/esm/helperComponents/PrivateButton/index.d.ts +1 -0
  136. package/dist/esm/helperComponents/PrivateButton/index.js +1 -0
  137. package/dist/esm/helperComponents/PrivateButton/styles.module.css +140 -0
  138. package/dist/esm/helperComponents/TableSelectItem/TableSelectItem.d.ts +11 -0
  139. package/dist/esm/helperComponents/TableSelectItem/TableSelectItem.js +6 -0
  140. package/dist/esm/helperComponents/TableSelectItem/index.d.ts +1 -0
  141. package/dist/esm/helperComponents/TableSelectItem/index.js +1 -0
  142. package/dist/esm/helperComponents/TableSelectItem/styles.module.css +101 -0
  143. package/dist/esm/helperComponents/TableSelectSettingsGrid/TableSelectSettingsGrid.d.ts +4 -0
  144. package/dist/esm/helperComponents/TableSelectSettingsGrid/TableSelectSettingsGrid.js +21 -0
  145. package/dist/esm/helperComponents/TableSelectSettingsGrid/index.d.ts +1 -0
  146. package/dist/esm/helperComponents/TableSelectSettingsGrid/index.js +1 -0
  147. package/dist/esm/helperComponents/TableSelectSettingsGrid/styles.module.css +54 -0
  148. package/dist/esm/helperComponents/index.d.ts +6 -0
  149. package/dist/esm/helperComponents/index.js +6 -0
  150. package/dist/esm/index.d.ts +4 -0
  151. package/dist/esm/index.js +4 -0
  152. package/dist/esm/locale/index.d.ts +199 -0
  153. package/dist/esm/locale/index.js +101 -0
  154. package/dist/esm/lowlight.d.ts +14 -0
  155. package/dist/esm/lowlight.js +29 -0
  156. package/dist/esm/mixins.css +0 -0
  157. package/dist/esm/rawMarkdownCommands.d.ts +16 -0
  158. package/dist/esm/rawMarkdownCommands.js +135 -0
  159. package/dist/esm/style.css +875 -0
  160. package/dist/esm/styles/syntax.module.css +47 -0
  161. package/dist/esm/toolbarApi.d.ts +33 -0
  162. package/dist/esm/toolbarApi.js +96 -0
  163. package/dist/esm/types.d.ts +52 -0
  164. package/dist/esm/types.js +1 -0
  165. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  166. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  167. package/package.json +84 -0
  168. package/src/components/Markdown/CodeBlock.tsx +96 -0
  169. package/src/components/Markdown/Markdown.tsx +47 -0
  170. package/src/components/Markdown/index.ts +1 -0
  171. package/src/components/Markdown/styles.module.scss +105 -0
  172. package/src/components/MarkdownEditor/MarkdownEditor.tsx +322 -0
  173. package/src/components/MarkdownEditor/index.ts +1 -0
  174. package/src/components/MarkdownEditor/styles.module.scss +201 -0
  175. package/src/components/Toolbar/Toolbar.tsx +292 -0
  176. package/src/components/Toolbar/constants.tsx +63 -0
  177. package/src/components/Toolbar/hooks/index.ts +2 -0
  178. package/src/components/Toolbar/hooks/useToolbarHotkeys.ts +74 -0
  179. package/src/components/Toolbar/hooks/useToolbarOverflow.ts +102 -0
  180. package/src/components/Toolbar/index.ts +2 -0
  181. package/src/components/Toolbar/styles.module.scss +29 -0
  182. package/src/components/index.ts +4 -0
  183. package/src/constants.ts +67 -0
  184. package/src/helperComponents/ButtonHeading/ButtonHeading.tsx +100 -0
  185. package/src/helperComponents/ButtonHeading/index.ts +1 -0
  186. package/src/helperComponents/ButtonHeading/styles.module.scss +5 -0
  187. package/src/helperComponents/Buttons/Buttons.tsx +30 -0
  188. package/src/helperComponents/Buttons/index.ts +1 -0
  189. package/src/helperComponents/Buttons/styles.module.scss +26 -0
  190. package/src/helperComponents/Modals/CustomizeTableModal.tsx +82 -0
  191. package/src/helperComponents/Modals/ImageModal.tsx +84 -0
  192. package/src/helperComponents/Modals/LinkModal.tsx +92 -0
  193. package/src/helperComponents/Modals/index.ts +3 -0
  194. package/src/helperComponents/Modals/styles.module.scss +21 -0
  195. package/src/helperComponents/PrivateButton/PrivateButton.tsx +88 -0
  196. package/src/helperComponents/PrivateButton/index.ts +1 -0
  197. package/src/helperComponents/PrivateButton/styles.module.scss +77 -0
  198. package/src/helperComponents/TableSelectItem/TableSelectItem.tsx +43 -0
  199. package/src/helperComponents/TableSelectItem/index.ts +1 -0
  200. package/src/helperComponents/TableSelectItem/styles.module.scss +26 -0
  201. package/src/helperComponents/TableSelectSettingsGrid/TableSelectSettingsGrid.tsx +48 -0
  202. package/src/helperComponents/TableSelectSettingsGrid/index.ts +1 -0
  203. package/src/helperComponents/TableSelectSettingsGrid/styles.module.scss +65 -0
  204. package/src/helperComponents/index.ts +6 -0
  205. package/src/index.ts +4 -0
  206. package/src/locale/index.ts +105 -0
  207. package/src/lowlight.ts +30 -0
  208. package/src/mixins.scss +123 -0
  209. package/src/rawMarkdownCommands.ts +179 -0
  210. package/src/styles/syntax.module.scss +54 -0
  211. package/src/toolbarApi.ts +152 -0
  212. package/src/types.ts +56 -0
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ButtonGroup } from '@cloud-ru/ds-button';
3
+ import { FieldCombo } from '@cloud-ru/ds-fields';
4
+ import { Modal } from '@cloud-ru/ds-modal';
5
+ import { usePortalContext } from '@cloud-ru/ds-portal-context';
6
+ import { useEffect, useState } from 'react';
7
+ import { TEST_IDS } from '../../constants.js';
8
+ import { markdownLocale } from '../../locale/index.js';
9
+ import styles from './styles.module.css';
10
+ export function LinkModal({ open, initial, onClose, onSubmit }) {
11
+ const { t } = markdownLocale.useTranslations();
12
+ const portalContext = usePortalContext();
13
+ const [linkProps, setLinkProps] = useState(initial);
14
+ // Префилл значением при каждом открытии (текущий href либо пусто).
15
+ useEffect(() => {
16
+ if (open) {
17
+ setLinkProps({ href: initial?.href, title: initial?.title });
18
+ }
19
+ }, [open, initial?.href, initial?.title]);
20
+ const trimmedUrl = linkProps?.href?.trim() ?? '';
21
+ const handleAdd = () => onSubmit({ href: trimmedUrl, title: linkProps?.title });
22
+ return (
23
+ // TODO: заменить на адаптив
24
+ _jsx(Modal, { open: open, onClose: onClose, container: portalContext.current ?? undefined, title: t('link.title'), "data-test-id": TEST_IDS.linkModal, content: _jsxs("div", { className: styles.fields, "data-column": true, children: [_jsx(FieldCombo, { size: 'm', label: t('link.titleField.label'), placeholder: t('link.titleField.placeholder'), value: linkProps?.title ?? '', onChange: title => setLinkProps(prev => ({ ...prev, title })), autoFocus: !initial?.title, "data-test-id": TEST_IDS.linkModalTitle }), _jsx(FieldCombo, { size: 'm', label: t('link.urlField.label'), placeholder: t('link.urlField.placeholder'), value: linkProps?.href ?? '', autoFocus: Boolean(initial?.title), onChange: href => setLinkProps(prev => ({ ...prev, href })), "data-test-id": TEST_IDS.linkModalUrl })] }), footer: _jsx(ButtonGroup, { size: 'm', primaryAction: {
25
+ label: t('add'),
26
+ onClick: handleAdd,
27
+ disabled: trimmedUrl === '',
28
+ 'data-test-id': TEST_IDS.linkModalAdd,
29
+ }, secondaryAction: {
30
+ appearance: 'neutral',
31
+ view: 'outline',
32
+ label: t('cancel'),
33
+ onClick: onClose,
34
+ 'data-test-id': TEST_IDS.linkModalCancel,
35
+ }, className: styles.buttons }) }));
36
+ }
@@ -0,0 +1,3 @@
1
+ export * from './CustomizeTableModal.js';
2
+ export * from './ImageModal.js';
3
+ export * from './LinkModal.js';
@@ -0,0 +1,3 @@
1
+ export * from './CustomizeTableModal.js';
2
+ export * from './ImageModal.js';
3
+ export * from './LinkModal.js';
@@ -0,0 +1,17 @@
1
+ .fields{
2
+ display:flex;
3
+ gap:var(--sn-primitive-dimension-16, 16px);
4
+ }
5
+ .fields[data-column]{
6
+ flex-direction:column;
7
+ }
8
+
9
+ .field{
10
+ flex:1 1 0;
11
+ min-width:0;
12
+ }
13
+
14
+ .buttons{
15
+ justify-content:flex-end;
16
+ width:100%;
17
+ }
@@ -0,0 +1,17 @@
1
+ import { WithSupportProps } from '@cloud-ru/ds-utils';
2
+ import { ButtonHTMLAttributes, ReactNode, Ref } from 'react';
3
+ type TipContentProps = {
4
+ title: string;
5
+ caption?: string;
6
+ };
7
+ export type PrivateButtonProps = WithSupportProps<Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> & {
8
+ icon: ReactNode;
9
+ withChevron?: boolean;
10
+ /** active/selected состояние */
11
+ checked?: boolean;
12
+ /** Внешний ref, без forwardRef (см. component-api-surface.md). */
13
+ innerRef?: Ref<HTMLButtonElement>;
14
+ tip?: TipContentProps;
15
+ }>;
16
+ export declare function PrivateButton({ id, tip, icon, checked, disabled, className, innerRef, type, withChevron, ...rest }: PrivateButtonProps): import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { WithTooltip } from '@cloud-ru/ds-tooltip';
3
+ import { Typography } from '@cloud-ru/ds-typography';
4
+ import cn from 'classnames';
5
+ import styles from './styles.module.css';
6
+ const PrivateChevronIcon = (_jsx("svg", { xmlns: 'http://www.w3.org/2000/svg', width: '8', height: '8', viewBox: '0 0 8 8', fill: 'none', className: styles.chevron, children: _jsx("path", { d: 'M1 3L4 6L7 3', stroke: 'currentColor', strokeWidth: '1.5', strokeLinecap: 'round', strokeLinejoin: 'round' }) }));
7
+ function TipContent({ title, caption }) {
8
+ return (_jsxs(_Fragment, { children: [_jsx(Typography, { variant: 'body', size: 's', weight: 'regular', className: styles.tipTitle, children: title }), caption && (_jsx(Typography, { variant: 'body', size: 's', weight: 'regular', className: styles.tipCaption, children: caption }))] }));
9
+ }
10
+ // eslint-disable-next-line ds/require-inner-ref-support -- innerRef проставляется условно (только без tip), поэтому статический маркер поддержки был бы неверен.
11
+ export function PrivateButton({ id, tip, icon, checked = false, disabled = false, className, innerRef, type = 'button', withChevron = false, ...rest }) {
12
+ return WithTooltip({
13
+ tooltip: tip
14
+ ? {
15
+ tip: _jsx(TipContent, { ...tip }),
16
+ triggerClassName: styles.tooltipTrigger,
17
+ }
18
+ : undefined,
19
+ children: (_jsxs("button", { "data-toolbar-item": id, ...rest, "data-toolbar-slot": true, ref: tip ? undefined : innerRef, type: type, disabled: disabled, className: cn(styles.root, className), "data-checked": checked || undefined, "data-disabled": disabled || undefined, "aria-pressed": checked, children: [_jsx("span", { className: styles.stateLayer, "data-state": checked ? 'activatedOnBackground' : 'emptyNeutralOnBackground', "aria-hidden": true }), icon, withChevron && PrivateChevronIcon] })),
20
+ });
21
+ }
@@ -0,0 +1 @@
1
+ export * from './PrivateButton.js';
@@ -0,0 +1 @@
1
+ export * from './PrivateButton.js';
@@ -0,0 +1,140 @@
1
+ @charset "UTF-8";
2
+ .stateLayer{
3
+ visibility:initial;
4
+ }
5
+
6
+ .root{
7
+ cursor:pointer;
8
+ position:relative;
9
+ display:inline-flex;
10
+ flex:0 0 auto;
11
+ align-items:center;
12
+ justify-content:center;
13
+ box-sizing:border-box;
14
+ min-width:var(--sn-button-anatomy-size-s-container-iconOnly-minWidth, var(--sn-density-size-s, var(--sn-primitive-dimension-48, 48px)));
15
+ height:var(--sn-button-anatomy-size-s-container-minHeight, var(--sn-density-size-s, var(--sn-primitive-dimension-48, 48px)));
16
+ padding:0;
17
+ border:0;
18
+ border-radius:var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px));
19
+ color:var(--sn-theme-color-neutral-text, var(--sn-brand-color-neutral-45, var(--sn-primitive-color-gray-45, #81869c)));
20
+ background:transparent;
21
+ }
22
+ .root:has(.chevron){
23
+ gap:var(--sn-markdown-anatomy-size-buttons-button-gap, var(--sn-primitive-dimension-2, 2px));
24
+ padding-right:var(--sn-markdown-anatomy-size-buttons-button-paddingRight, var(--sn-primitive-dimension-4, 4px));
25
+ }
26
+ .root svg{
27
+ flex:0 0 auto;
28
+ stroke-width:var(--sn-density-size-icon-strokeWeight-s, 1.5px);
29
+ }
30
+ .root svg:not(.chevron){
31
+ width:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
32
+ height:var(--sn-density-size-icon-s, var(--sn-primitive-dimension-24, 24px));
33
+ }
34
+ .root:focus-visible{
35
+ outline:var(--sn-primitive-strokeWeight-strokeSemiBold, 2px) solid var(--sn-theme-color-available-complementary, #000000);
36
+ outline-offset:0;
37
+ }
38
+ .root[data-checked]{
39
+ color:var(--sn-theme-color-primary-accent, var(--sn-brand-color-primary-55, var(--sn-brandRole-color-brandA-55, var(--sn-primitive-color-brandA-55, #389f74))));
40
+ }
41
+ .root[data-disabled]{
42
+ cursor:not-allowed;
43
+ color:var(--sn-theme-color-available-version-textDisabled, var(--sn-brand-color-text-version-disabled, rgba(65, 66, 78, 0.3490196078)));
44
+ }
45
+ .root .stateLayer{
46
+ position:absolute;
47
+ inset:0;
48
+ border-radius:inherit;
49
+ }
50
+ .root .stateLayer[data-state=borderOnBackground]{
51
+ border-color:var(--sn-theme-color-material-stateLayer-neutral-border-default-borderColor, var(--sn-brand-color-state-neutralBorder-forLightMode-default-borderColor, rgba(159, 166, 198, 0.3019607843)));
52
+ border-style:solid;
53
+ border-width:var(--sn-primitive-strokeWeight-strokeRegular, 1px);
54
+ }
55
+ .root .stateLayer[data-state=emptyNeutralOnBackground]{
56
+ background:var(--sn-theme-color-material-stateLayer-neutral-onBackground-defaultEmpty-filled, var(--sn-brand-color-state-neutral-forLightMode-default-background, rgba(120, 123, 138, 0)));
57
+ }
58
+ .root .stateLayer[data-state=activatedOnBackground]{
59
+ background:var(--sn-theme-color-material-stateLayer-activated-default-filled, var(--sn-brand-color-state-activated-default-background, var(--sn-brandRole-color-brandA-backgroundActivatedDefault, rgba(56, 159, 116, 0.1490196078))));
60
+ }
61
+ .root .stateLayer[data-state=versionOnColor]{
62
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-default-filled, rgba(0, 0, 0, 0.0509803922));
63
+ }
64
+ .root .stateLayer[data-state=emptyVersionOnColor]{
65
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-defaultEmpty-filled, rgba(0, 0, 0, 0));
66
+ }
67
+ .root .stateLayer[data-state=inversionOnColor]{
68
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-default-filled, rgba(255, 255, 255, 0.1019607843));
69
+ }
70
+ .root .stateLayer[data-state=emptyInversionOnColor]{
71
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-defaultEmpty-filled, rgba(255, 255, 255, 0));
72
+ }
73
+ .root .stateLayer[data-state=emptyDarkOnAccent]{
74
+ background:var(--sn-theme-color-material-stateLayer-darkOnAccent-defaultEmpty-filled, rgba(0, 0, 0, 0));
75
+ }
76
+ @media (hover: hover){
77
+ .root:hover:not([data-disabled], [data-loading]) .stateLayer[data-state=borderOnBackground]{
78
+ border-color:var(--sn-theme-color-material-stateLayer-neutral-border-hovered-borderColor, var(--sn-brand-color-state-neutralBorder-forLightMode-hovered-borderColor, rgba(159, 166, 198, 0.6509803922)));
79
+ }
80
+ .root:hover:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyNeutralOnBackground]{
81
+ background:var(--sn-theme-color-material-stateLayer-neutral-onBackground-hovered-filled, var(--sn-brand-color-state-neutral-forLightMode-hovered-background, rgba(188, 195, 220, 0.1490196078)));
82
+ }
83
+ .root:hover:not([data-disabled], [data-loading]) .stateLayer[data-state=activatedOnBackground]{
84
+ background:var(--sn-theme-color-material-stateLayer-activated-hovered-filled, var(--sn-brand-color-state-activated-hovered-background, var(--sn-brandRole-color-brandA-backgroundActivatedHovered, rgba(56, 159, 116, 0.3490196078))));
85
+ }
86
+ .root:hover:not([data-disabled], [data-loading]) .stateLayer[data-state=versionOnColor]{
87
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-hovered-filled, rgba(0, 0, 0, 0.1019607843));
88
+ }
89
+ .root:hover:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyVersionOnColor]{
90
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-hovered-filled, rgba(0, 0, 0, 0.1019607843));
91
+ }
92
+ .root:hover:not([data-disabled], [data-loading]) .stateLayer[data-state=inversionOnColor]{
93
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-hovered-filled, rgba(255, 255, 255, 0.1490196078));
94
+ }
95
+ .root:hover:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyInversionOnColor]{
96
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-hovered-filled, rgba(255, 255, 255, 0.1490196078));
97
+ }
98
+ .root:hover:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyDarkOnAccent]{
99
+ background:var(--sn-theme-color-material-stateLayer-darkOnAccent-hovered-filled, rgba(0, 0, 0, 0.0588235294));
100
+ }
101
+ }
102
+ .root{
103
+ }
104
+ .root[data-loading] .stateLayer[data-state=borderOnBackground], .root:active:not([data-disabled], [data-loading]) .stateLayer[data-state=borderOnBackground], .root[data-pressed=true]:not([data-disabled], [data-loading]) .stateLayer[data-state=borderOnBackground]{
105
+ border-color:var(--sn-theme-color-material-stateLayer-neutral-border-pressed-borderColor, var(--sn-brand-color-state-neutralBorder-forLightMode-pressed-borderColor, rgba(159, 166, 198, 0.8)));
106
+ }
107
+ .root[data-loading] .stateLayer[data-state=emptyNeutralOnBackground], .root:active:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyNeutralOnBackground], .root[data-pressed=true]:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyNeutralOnBackground]{
108
+ background:var(--sn-theme-color-material-stateLayer-neutral-onBackground-pressed-filled, var(--sn-brand-color-state-neutral-forLightMode-pressed-background, rgba(188, 195, 220, 0.3019607843)));
109
+ }
110
+ .root[data-loading] .stateLayer[data-state=activatedOnBackground], .root:active:not([data-disabled], [data-loading]) .stateLayer[data-state=activatedOnBackground], .root[data-pressed=true]:not([data-disabled], [data-loading]) .stateLayer[data-state=activatedOnBackground]{
111
+ background:var(--sn-theme-color-material-stateLayer-activated-pressed-filled, var(--sn-brand-color-state-activated-pressed-background, var(--sn-brandRole-color-brandA-backgroundActivatedPressed, rgba(56, 159, 116, 0.4509803922))));
112
+ }
113
+ .root[data-loading] .stateLayer[data-state=versionOnColor], .root:active:not([data-disabled], [data-loading]) .stateLayer[data-state=versionOnColor], .root[data-pressed=true]:not([data-disabled], [data-loading]) .stateLayer[data-state=versionOnColor]{
114
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-pressed-filled, rgba(0, 0, 0, 0.1490196078));
115
+ }
116
+ .root[data-loading] .stateLayer[data-state=emptyVersionOnColor], .root:active:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyVersionOnColor], .root[data-pressed=true]:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyVersionOnColor]{
117
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-pressed-filled, rgba(0, 0, 0, 0.1490196078));
118
+ }
119
+ .root[data-loading] .stateLayer[data-state=inversionOnColor], .root:active:not([data-disabled], [data-loading]) .stateLayer[data-state=inversionOnColor], .root[data-pressed=true]:not([data-disabled], [data-loading]) .stateLayer[data-state=inversionOnColor]{
120
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-pressed-filled, rgba(255, 255, 255, 0.0509803922));
121
+ }
122
+ .root[data-loading] .stateLayer[data-state=emptyInversionOnColor], .root:active:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyInversionOnColor], .root[data-pressed=true]:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyInversionOnColor]{
123
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-pressed-filled, rgba(255, 255, 255, 0.0509803922));
124
+ }
125
+ .root[data-loading] .stateLayer[data-state=emptyDarkOnAccent], .root:active:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyDarkOnAccent], .root[data-pressed=true]:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyDarkOnAccent]{
126
+ background:var(--sn-theme-color-material-stateLayer-darkOnAccent-pressed-filled, rgba(0, 0, 0, 0.1215686275));
127
+ }
128
+
129
+ .tooltipTrigger{
130
+ display:inline-flex;
131
+ }
132
+
133
+ .tipTitle{
134
+ text-align:center;
135
+ }
136
+
137
+ .tipCaption{
138
+ color:var(--sn-theme-color-available-inversion-textTertiary, var(--sn-brand-color-text-inversion-tertiary, rgba(242, 243, 248, 0.6)));
139
+ text-align:center;
140
+ }
@@ -0,0 +1,11 @@
1
+ export type TableSelectItemProps = {
2
+ /** Hover-состояние (управляется родителем по mouseEnter). */
3
+ hovered?: boolean;
4
+ /** Будет ли ячейка попадать в выбранный диапазон. */
5
+ checked?: boolean;
6
+ onMouseEnter?(): void;
7
+ onClick?(): void;
8
+ 'aria-label'?: string;
9
+ 'data-test-id'?: string;
10
+ };
11
+ export declare function TableSelectItem({ hovered, checked, onMouseEnter, onClick, 'aria-label': ariaLabel, 'data-test-id': dataTestId, }: TableSelectItemProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import styles from './styles.module.css';
3
+ export function TableSelectItem({ hovered = false, checked = false, onMouseEnter, onClick, 'aria-label': ariaLabel, 'data-test-id': dataTestId, }) {
4
+ const state = hovered ? 'hovered' : 'default';
5
+ return (_jsx("button", { type: 'button', className: styles.root, "data-state": state, "data-checked": checked || undefined, onMouseEnter: onMouseEnter, onClick: onClick, "aria-label": ariaLabel, "data-test-id": dataTestId, children: _jsx("span", { className: styles.stateLayer, "data-state": checked ? 'activatedOnBackground' : 'emptyNeutralOnBackground', "aria-hidden": true }) }));
6
+ }
@@ -0,0 +1 @@
1
+ export * from './TableSelectItem.js';
@@ -0,0 +1 @@
1
+ export * from './TableSelectItem.js';
@@ -0,0 +1,101 @@
1
+ @charset "UTF-8";
2
+ .stateLayer{
3
+ pointer-events:none;
4
+ }
5
+
6
+ .root{
7
+ cursor:pointer;
8
+ position:relative;
9
+ box-sizing:border-box;
10
+ width:var(--sn-markdown-anatomy-size-tableSelect-container-item-size, var(--sn-primitive-dimension-16, 16px));
11
+ height:var(--sn-markdown-anatomy-size-tableSelect-container-item-size, var(--sn-primitive-dimension-16, 16px));
12
+ padding:0;
13
+ border:var(--sn-markdown-anatomy-size-tableSelect-container-item-borderWidth, var(--sn-primitive-strokeWeight-strokeRegular, 1px)) solid var(--sn-theme-color-available-borderColor, var(--sn-brand-color-state-neutralBorder-forLightMode-default-borderColor, rgba(159, 166, 198, 0.3019607843)));
14
+ border-radius:var(--sn-markdown-anatomy-size-tableSelect-container-item-borderRadius, var(--sn-density-radius-2xs, var(--sn-primitive-dimension-4, 4px)));
15
+ }
16
+ .root[data-checked]{
17
+ border-color:var(--sn-theme-color-primary-accent, var(--sn-brand-color-primary-55, var(--sn-brandRole-color-brandA-55, var(--sn-primitive-color-brandA-55, #389f74))));
18
+ }
19
+ .root .stateLayer{
20
+ position:absolute;
21
+ inset:0;
22
+ border-radius:inherit;
23
+ }
24
+ .root .stateLayer[data-state=borderOnBackground]{
25
+ border-color:var(--sn-theme-color-material-stateLayer-neutral-border-default-borderColor, var(--sn-brand-color-state-neutralBorder-forLightMode-default-borderColor, rgba(159, 166, 198, 0.3019607843)));
26
+ border-style:solid;
27
+ border-width:var(--sn-primitive-strokeWeight-strokeRegular, 1px);
28
+ }
29
+ .root .stateLayer[data-state=emptyNeutralOnBackground]{
30
+ background:var(--sn-theme-color-material-stateLayer-neutral-onBackground-defaultEmpty-filled, var(--sn-brand-color-state-neutral-forLightMode-default-background, rgba(120, 123, 138, 0)));
31
+ }
32
+ .root .stateLayer[data-state=activatedOnBackground]{
33
+ background:var(--sn-theme-color-material-stateLayer-activated-default-filled, var(--sn-brand-color-state-activated-default-background, var(--sn-brandRole-color-brandA-backgroundActivatedDefault, rgba(56, 159, 116, 0.1490196078))));
34
+ }
35
+ .root .stateLayer[data-state=versionOnColor]{
36
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-default-filled, rgba(0, 0, 0, 0.0509803922));
37
+ }
38
+ .root .stateLayer[data-state=emptyVersionOnColor]{
39
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-defaultEmpty-filled, rgba(0, 0, 0, 0));
40
+ }
41
+ .root .stateLayer[data-state=inversionOnColor]{
42
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-default-filled, rgba(255, 255, 255, 0.1019607843));
43
+ }
44
+ .root .stateLayer[data-state=emptyInversionOnColor]{
45
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-defaultEmpty-filled, rgba(255, 255, 255, 0));
46
+ }
47
+ .root .stateLayer[data-state=emptyDarkOnAccent]{
48
+ background:var(--sn-theme-color-material-stateLayer-darkOnAccent-defaultEmpty-filled, rgba(0, 0, 0, 0));
49
+ }
50
+ @media (hover: hover){
51
+ .root:hover:not([data-disabled], [data-loading]) .stateLayer[data-state=borderOnBackground]{
52
+ border-color:var(--sn-theme-color-material-stateLayer-neutral-border-hovered-borderColor, var(--sn-brand-color-state-neutralBorder-forLightMode-hovered-borderColor, rgba(159, 166, 198, 0.6509803922)));
53
+ }
54
+ .root:hover:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyNeutralOnBackground]{
55
+ background:var(--sn-theme-color-material-stateLayer-neutral-onBackground-hovered-filled, var(--sn-brand-color-state-neutral-forLightMode-hovered-background, rgba(188, 195, 220, 0.1490196078)));
56
+ }
57
+ .root:hover:not([data-disabled], [data-loading]) .stateLayer[data-state=activatedOnBackground]{
58
+ background:var(--sn-theme-color-material-stateLayer-activated-hovered-filled, var(--sn-brand-color-state-activated-hovered-background, var(--sn-brandRole-color-brandA-backgroundActivatedHovered, rgba(56, 159, 116, 0.3490196078))));
59
+ }
60
+ .root:hover:not([data-disabled], [data-loading]) .stateLayer[data-state=versionOnColor]{
61
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-hovered-filled, rgba(0, 0, 0, 0.1019607843));
62
+ }
63
+ .root:hover:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyVersionOnColor]{
64
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-hovered-filled, rgba(0, 0, 0, 0.1019607843));
65
+ }
66
+ .root:hover:not([data-disabled], [data-loading]) .stateLayer[data-state=inversionOnColor]{
67
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-hovered-filled, rgba(255, 255, 255, 0.1490196078));
68
+ }
69
+ .root:hover:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyInversionOnColor]{
70
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-hovered-filled, rgba(255, 255, 255, 0.1490196078));
71
+ }
72
+ .root:hover:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyDarkOnAccent]{
73
+ background:var(--sn-theme-color-material-stateLayer-darkOnAccent-hovered-filled, rgba(0, 0, 0, 0.0588235294));
74
+ }
75
+ }
76
+ .root{
77
+ }
78
+ .root[data-loading] .stateLayer[data-state=borderOnBackground], .root:active:not([data-disabled], [data-loading]) .stateLayer[data-state=borderOnBackground], .root[data-pressed=true]:not([data-disabled], [data-loading]) .stateLayer[data-state=borderOnBackground]{
79
+ border-color:var(--sn-theme-color-material-stateLayer-neutral-border-pressed-borderColor, var(--sn-brand-color-state-neutralBorder-forLightMode-pressed-borderColor, rgba(159, 166, 198, 0.8)));
80
+ }
81
+ .root[data-loading] .stateLayer[data-state=emptyNeutralOnBackground], .root:active:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyNeutralOnBackground], .root[data-pressed=true]:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyNeutralOnBackground]{
82
+ background:var(--sn-theme-color-material-stateLayer-neutral-onBackground-pressed-filled, var(--sn-brand-color-state-neutral-forLightMode-pressed-background, rgba(188, 195, 220, 0.3019607843)));
83
+ }
84
+ .root[data-loading] .stateLayer[data-state=activatedOnBackground], .root:active:not([data-disabled], [data-loading]) .stateLayer[data-state=activatedOnBackground], .root[data-pressed=true]:not([data-disabled], [data-loading]) .stateLayer[data-state=activatedOnBackground]{
85
+ background:var(--sn-theme-color-material-stateLayer-activated-pressed-filled, var(--sn-brand-color-state-activated-pressed-background, var(--sn-brandRole-color-brandA-backgroundActivatedPressed, rgba(56, 159, 116, 0.4509803922))));
86
+ }
87
+ .root[data-loading] .stateLayer[data-state=versionOnColor], .root:active:not([data-disabled], [data-loading]) .stateLayer[data-state=versionOnColor], .root[data-pressed=true]:not([data-disabled], [data-loading]) .stateLayer[data-state=versionOnColor]{
88
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-pressed-filled, rgba(0, 0, 0, 0.1490196078));
89
+ }
90
+ .root[data-loading] .stateLayer[data-state=emptyVersionOnColor], .root:active:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyVersionOnColor], .root[data-pressed=true]:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyVersionOnColor]{
91
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-pressed-filled, rgba(0, 0, 0, 0.1490196078));
92
+ }
93
+ .root[data-loading] .stateLayer[data-state=inversionOnColor], .root:active:not([data-disabled], [data-loading]) .stateLayer[data-state=inversionOnColor], .root[data-pressed=true]:not([data-disabled], [data-loading]) .stateLayer[data-state=inversionOnColor]{
94
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-pressed-filled, rgba(255, 255, 255, 0.0509803922));
95
+ }
96
+ .root[data-loading] .stateLayer[data-state=emptyInversionOnColor], .root:active:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyInversionOnColor], .root[data-pressed=true]:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyInversionOnColor]{
97
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-pressed-filled, rgba(255, 255, 255, 0.0509803922));
98
+ }
99
+ .root[data-loading] .stateLayer[data-state=emptyDarkOnAccent], .root:active:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyDarkOnAccent], .root[data-pressed=true]:not([data-disabled], [data-loading]) .stateLayer[data-state=emptyDarkOnAccent]{
100
+ background:var(--sn-theme-color-material-stateLayer-darkOnAccent-pressed-filled, rgba(0, 0, 0, 0.1215686275));
101
+ }
@@ -0,0 +1,4 @@
1
+ export type TableSelectSettingsGridProps = {
2
+ onPick(rows: number, cols: number): void;
3
+ };
4
+ export declare function TableSelectSettingsGrid({ onPick }: TableSelectSettingsGridProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { tableCellTestId, TEST_IDS } from '../../constants.js';
4
+ import { markdownLocale } from '../../locale/index.js';
5
+ import { TableSelectItem } from '../TableSelectItem/index.js';
6
+ import styles from './styles.module.css';
7
+ const MAX = 8;
8
+ export function TableSelectSettingsGrid({ onPick }) {
9
+ const { t } = markdownLocale.useTranslations();
10
+ const [hover, setHover] = useState(null);
11
+ const cells = [];
12
+ for (let r = 1; r <= MAX; r += 1) {
13
+ for (let c = 1; c <= MAX; c += 1) {
14
+ cells.push({ r, c });
15
+ }
16
+ }
17
+ return (_jsx("div", { className: styles.root, "data-test-id": TEST_IDS.tableGridPicker, children: _jsxs("div", { className: styles.container, children: [_jsx("div", { className: styles.grid, onMouseLeave: () => setHover(null), children: cells.map(({ r, c }) => {
18
+ const checked = hover !== null && r <= hover.r && c <= hover.c;
19
+ return (_jsx(TableSelectItem, { hovered: hover?.r === r && hover?.c === c, checked: checked, onMouseEnter: () => setHover({ r, c }), onClick: () => onPick(r, c), "aria-label": t('table.insert', { rows: r, cols: c }), "data-test-id": tableCellTestId(r, c) }, `${r}-${c}`));
20
+ }) }), _jsx("div", { className: styles.label, children: hover ? `${hover.r} × ${hover.c}` : t('table.pickSize') })] }) }));
21
+ }
@@ -0,0 +1 @@
1
+ export * from './TableSelectSettingsGrid.js';
@@ -0,0 +1 @@
1
+ export * from './TableSelectSettingsGrid.js';
@@ -0,0 +1,54 @@
1
+ .root{
2
+ display:flex;
3
+ flex-direction:column;
4
+ }
5
+
6
+ .container{
7
+ display:flex;
8
+ flex-direction:column;
9
+ gap:var(--sn-markdown-anatomy-size-tableSelect-container-gap, var(--sn-primitive-dimension-4, 4px));
10
+ box-sizing:border-box;
11
+ padding:var(--sn-markdown-anatomy-size-tableSelect-container-paddingHorizontal, var(--sn-primitive-dimension-8, 8px)) var(--sn-markdown-anatomy-size-tableSelect-container-paddingHorizontal, var(--sn-primitive-dimension-8, 8px)) var(--sn-markdown-anatomy-size-tableSelect-container-paddingBottom, var(--sn-primitive-dimension-4, 4px));
12
+ }
13
+
14
+ .grid{
15
+ display:grid;
16
+ grid-template-columns:repeat(8, var(--sn-markdown-anatomy-size-tableSelect-container-item-size, var(--sn-primitive-dimension-16, 16px)));
17
+ gap:var(--sn-markdown-anatomy-size-tableSelect-container-gap, var(--sn-primitive-dimension-4, 4px));
18
+ }
19
+
20
+ .label{
21
+ font-size:var(--sn-density-typography-roleBody-fontSizeS, var(--sn-primitive-font-fontSize-14, 14px));
22
+ line-height:var(--sn-density-typography-roleBody-lineHeightS, var(--sn-primitive-font-lineHeight-by14, 20px));
23
+ color:var(--sn-theme-color-available-version-textSecondary, var(--sn-brand-color-text-version-secondary, rgba(65, 66, 78, 0.8)));
24
+ text-align:center;
25
+ }
26
+
27
+ .customize{
28
+ cursor:pointer;
29
+ display:flex;
30
+ gap:var(--sn-primitive-dimension-8, 8px);
31
+ align-items:center;
32
+ justify-content:space-between;
33
+ box-sizing:border-box;
34
+ padding:var(--sn-primitive-dimension-4, 4px) var(--sn-primitive-dimension-12, 12px);
35
+ border:none;
36
+ font-family:var(--sn-brand-font-fontFamily-regular-body, var(--sn-primitive-fontFamily-brandA-sans, SB Sans Interface));
37
+ font-size:var(--sn-density-typography-roleBody-fontSizeM, var(--sn-primitive-font-fontSize-16, 16px));
38
+ line-height:var(--sn-density-typography-roleBody-lineHeightM, var(--sn-primitive-font-lineHeight-by16, 24px));
39
+ color:var(--sn-theme-color-available-version-textMain, var(--sn-brand-color-text-version-main, #41424e));
40
+ text-align:left;
41
+ background:transparent;
42
+ }
43
+ .customize:hover{
44
+ background:var(--sn-theme-color-neutral-background2Level, var(--sn-brand-color-neutral-99, var(--sn-primitive-color-gray-99, #ffffff)));
45
+ }
46
+
47
+ .customizeLabel{
48
+ flex:1 1 auto;
49
+ }
50
+
51
+ .customizeChevron{
52
+ flex:0 0 auto;
53
+ color:var(--sn-theme-color-available-version-textSecondary, var(--sn-brand-color-text-version-secondary, rgba(65, 66, 78, 0.8)));
54
+ }
@@ -0,0 +1,6 @@
1
+ export * from './ButtonHeading/index.js';
2
+ export * from './Buttons/index.js';
3
+ export * from './Modals/index.js';
4
+ export * from './PrivateButton/index.js';
5
+ export * from './TableSelectItem/index.js';
6
+ export * from './TableSelectSettingsGrid/index.js';
@@ -0,0 +1,6 @@
1
+ export * from './ButtonHeading/index.js';
2
+ export * from './Buttons/index.js';
3
+ export * from './Modals/index.js';
4
+ export * from './PrivateButton/index.js';
5
+ export * from './TableSelectItem/index.js';
6
+ export * from './TableSelectSettingsGrid/index.js';
@@ -0,0 +1,4 @@
1
+ export * from './components/index.js';
2
+ export * from './constants.js';
3
+ export * from './types.js';
4
+ export * from './locale/index.js';
@@ -0,0 +1,4 @@
1
+ export * from './components/index.js';
2
+ export * from './constants.js';
3
+ export * from './types.js';
4
+ export * from './locale/index.js';