@ostack.tech/ui-kform 0.10.5 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{en-B9UXLueo.js → en-3JcwFYXc.js} +3 -3
- package/dist/chunks/{en-B9UXLueo.js.map → en-3JcwFYXc.js.map} +1 -1
- package/dist/locales/en-GB.js +1 -1
- package/dist/locales/en-US.js +1 -1
- package/dist/locales/fr-FR.js +2 -2
- package/dist/locales/fr-FR.js.map +1 -1
- package/dist/locales/pt-PT.js +2 -2
- package/dist/locales/pt-PT.js.map +1 -1
- package/dist/ostack-ui-kform.css +15 -36
- package/dist/ostack-ui-kform.js +97 -54
- package/dist/ostack-ui-kform.js.map +1 -1
- package/dist/types/components/Annexes/Annex.d.ts +3 -3
- package/dist/types/components/FormApp/FormApp.d.ts +8 -8
- package/dist/types/components/FormPages/FormPage.d.ts +3 -3
- package/dist/types/components/FormStepper/FormStep.d.ts +43 -6
- package/dist/types/components/FormStepper/FormStepButton.d.ts +8 -0
- package/dist/types/components/FormStepper/FormStepList.d.ts +1 -1
- package/dist/types/components/FormStepper/FormStepper.d.ts +1 -1
- package/dist/types/components/FormStepper/FormStepperFinishTrigger.d.ts +2 -0
- package/dist/types/components/FormStepper/FormStepperNextTrigger.d.ts +2 -0
- package/dist/types/components/FormStepper/FormStepperPreviousTrigger.d.ts +2 -0
- package/dist/types/components/FormStepper/FormStepperState.d.ts +3 -0
- package/dist/types/components/FormStepper/index.d.ts +4 -1
- package/dist/types/components/TableControl/TableControlAddRowTrigger.d.ts +24 -10
- package/dist/types/components/TableControl/TableControlRemoveRowTrigger.d.ts +21 -11
- package/dist/types/providers/LocalizationProvider/LocalizationObject.d.ts +3 -3
- package/package.json +2 -2
- package/scss/_utils.scss +1 -0
- package/scss/components/Annexes/_Annexes-variables.scss +2 -3
- package/scss/components/Annexes/_Annexes.scss +55 -56
- package/scss/components/FileControl/_FileControl.scss +7 -10
- package/scss/components/FormApp/_FormApp-variables.scss +9 -0
- package/scss/components/FormApp/_FormApp.scss +19 -38
- package/scss/components/FormPages/_FormPages-variables.scss +18 -22
- package/scss/components/FormPages/_FormPages.scss +73 -62
- package/scss/components/IssueMessages/_IssueMessages.scss +1 -1
- package/scss/components/IssuesPanel/_IssuesPanel-variables.scss +32 -34
- package/scss/components/IssuesPanel/_IssuesPanel.scss +9 -10
- package/scss/components/TopBar/_TopBar.scss +15 -14
- package/scss/scss/_base-variables.scss +2 -2
- package/dist/types/components/FormStepper/FormStepContent.d.ts +0 -20
|
@@ -17,9 +17,9 @@ export interface AnnexProps extends AnnexObject, Omit<ComponentPropsWithoutRef<t
|
|
|
17
17
|
*
|
|
18
18
|
* These messages are used by the `IssueMessages` component.
|
|
19
19
|
*
|
|
20
|
-
* **Note:** Changes to `issueMessages` are handled correctly, but are not
|
|
21
|
-
* efficient. Please make sure that the identity of the provided value doesn't
|
|
22
|
-
* change at every render.
|
|
20
|
+
* > **Note:** Changes to `issueMessages` are handled correctly, but are not
|
|
21
|
+
* > efficient. Please make sure that the identity of the provided value doesn't
|
|
22
|
+
* > change at every render.
|
|
23
23
|
*
|
|
24
24
|
* Example value:
|
|
25
25
|
*
|
|
@@ -49,9 +49,9 @@ export type FormAppProps<T = any> = Pick<ComponentPropsWithoutRef<typeof Root>,
|
|
|
49
49
|
*
|
|
50
50
|
* These messages are used by the `IssueMessages` component.
|
|
51
51
|
*
|
|
52
|
-
* **Note:** Changes to `issueMessages` are handled correctly, but are not
|
|
53
|
-
* efficient. Please make sure that the identity of the provided value
|
|
54
|
-
* doesn't change at every render.
|
|
52
|
+
* > **Note:** Changes to `issueMessages` are handled correctly, but are not
|
|
53
|
+
* > efficient. Please make sure that the identity of the provided value
|
|
54
|
+
* > doesn't change at every render.
|
|
55
55
|
*
|
|
56
56
|
* Example value:
|
|
57
57
|
*
|
|
@@ -76,7 +76,7 @@ export type FormAppProps<T = any> = Pick<ComponentPropsWithoutRef<typeof Root>,
|
|
|
76
76
|
* for navigating issues.
|
|
77
77
|
* - `panel` mode displays issue messages within the bottom issues panel.
|
|
78
78
|
*
|
|
79
|
-
* @default inline
|
|
79
|
+
* @default "inline"
|
|
80
80
|
*/
|
|
81
81
|
issuesDisplayMode?: IssuesDisplayMode;
|
|
82
82
|
/**
|
|
@@ -186,9 +186,9 @@ export declare const FormApp: import('react').ForwardRefExoticComponent<Pick<Omi
|
|
|
186
186
|
*
|
|
187
187
|
* These messages are used by the `IssueMessages` component.
|
|
188
188
|
*
|
|
189
|
-
* **Note:** Changes to `issueMessages` are handled correctly, but are not
|
|
190
|
-
* efficient. Please make sure that the identity of the provided value
|
|
191
|
-
* doesn't change at every render.
|
|
189
|
+
* > **Note:** Changes to `issueMessages` are handled correctly, but are not
|
|
190
|
+
* > efficient. Please make sure that the identity of the provided value
|
|
191
|
+
* > doesn't change at every render.
|
|
192
192
|
*
|
|
193
193
|
* Example value:
|
|
194
194
|
*
|
|
@@ -213,7 +213,7 @@ export declare const FormApp: import('react').ForwardRefExoticComponent<Pick<Omi
|
|
|
213
213
|
* for navigating issues.
|
|
214
214
|
* - `panel` mode displays issue messages within the bottom issues panel.
|
|
215
215
|
*
|
|
216
|
-
* @default inline
|
|
216
|
+
* @default "inline"
|
|
217
217
|
*/
|
|
218
218
|
issuesDisplayMode?: IssuesDisplayMode;
|
|
219
219
|
/**
|
|
@@ -20,9 +20,9 @@ export interface FormPageProps extends FormPageObject, Omit<ComponentPropsWithou
|
|
|
20
20
|
*
|
|
21
21
|
* These messages are used by the `IssueMessages` component.
|
|
22
22
|
*
|
|
23
|
-
* **Note:** Changes to `issueMessages` are handled correctly, but are not
|
|
24
|
-
* efficient. Please make sure that the identity of the provided value doesn't
|
|
25
|
-
* change at every render.
|
|
23
|
+
* > **Note:** Changes to `issueMessages` are handled correctly, but are not
|
|
24
|
+
* > efficient. Please make sure that the identity of the provided value doesn't
|
|
25
|
+
* > change at every render.
|
|
26
26
|
*
|
|
27
27
|
* Example value:
|
|
28
28
|
*
|
|
@@ -1,8 +1,45 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ErrorBoundary, StepContent } from '@ostack.tech/ui';
|
|
2
|
+
import { ComponentPropsWithoutRef, ComponentPropsWithRef } from 'react';
|
|
3
|
+
import { IssueMessagesByCode } from '../IssueMessages';
|
|
4
|
+
import { FormStepObject } from './FormStepper.tsx';
|
|
2
5
|
/** Properties of the form step component. */
|
|
3
|
-
export interface FormStepProps {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
+
export interface FormStepProps extends FormStepObject, Omit<ComponentPropsWithoutRef<typeof StepContent>, "index" | "title"> {
|
|
7
|
+
/** Sets the step as disabled. */
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
/** Sets the step as read-only. */
|
|
10
|
+
readOnly?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Mapping of issue messages from the path of the field with issues to the
|
|
13
|
+
* issue messages of said field (which are themselves grouped by their code).
|
|
14
|
+
*
|
|
15
|
+
* Provided paths are relative to the form step's path and may contain
|
|
16
|
+
* wildcards, which will have a lower priority when matched against.
|
|
17
|
+
*
|
|
18
|
+
* These messages are used by the `IssueMessages` component.
|
|
19
|
+
*
|
|
20
|
+
* > **Note:** Changes to `issueMessages` are handled correctly, but are not
|
|
21
|
+
* > efficient. Please make sure that the identity of the provided value doesn't
|
|
22
|
+
* > change at every render.
|
|
23
|
+
*
|
|
24
|
+
* Example value:
|
|
25
|
+
*
|
|
26
|
+
* ```tsx
|
|
27
|
+
* {
|
|
28
|
+
* "**": {
|
|
29
|
+
* "valueMissing": "Field is required."
|
|
30
|
+
* },
|
|
31
|
+
* "field": {
|
|
32
|
+
* "valueMissing": "My field cannot be left empty!",
|
|
33
|
+
* "someOtherError": "Text of the other error."
|
|
34
|
+
* }
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
issueMessages?: Record<string, IssueMessagesByCode>;
|
|
39
|
+
/** Properties to pass to the `ErrorBoundary` component. */
|
|
40
|
+
errorBoundaryProps?: ComponentPropsWithRef<typeof ErrorBoundary>;
|
|
6
41
|
}
|
|
7
|
-
/**
|
|
8
|
-
export declare
|
|
42
|
+
/** Single form step. */
|
|
43
|
+
export declare const FormStep: import('react').ForwardRefExoticComponent<FormStepProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
44
|
+
/** @deprecated Use `FormStep` instead. */
|
|
45
|
+
export declare const FormStepContent: import('react').ForwardRefExoticComponent<FormStepProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AbsolutePath } from '@ostack.tech/kform';
|
|
2
|
+
/** Properties of the form step button component. */
|
|
3
|
+
export interface FormStepButtonProps {
|
|
4
|
+
path: AbsolutePath;
|
|
5
|
+
index: number;
|
|
6
|
+
}
|
|
7
|
+
/** Form step button. */
|
|
8
|
+
export declare function FormStepButton({ path, index }: FormStepButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -4,4 +4,4 @@ import { ComponentPropsWithoutRef } from 'react';
|
|
|
4
4
|
export interface FormStepListProps extends ComponentPropsWithoutRef<typeof StepList> {
|
|
5
5
|
}
|
|
6
6
|
/** Component displaying all form steps in a list. */
|
|
7
|
-
export declare const FormStepList: import('react').ForwardRefExoticComponent<FormStepListProps & import('react').RefAttributes<
|
|
7
|
+
export declare const FormStepList: import('react').ForwardRefExoticComponent<FormStepListProps & import('react').RefAttributes<HTMLOListElement>>;
|
|
@@ -6,7 +6,7 @@ export interface FormStepperProps extends Omit<ComponentPropsWithoutRef<typeof S
|
|
|
6
6
|
/** Base path for all declared form steps. */
|
|
7
7
|
path?: string | Path;
|
|
8
8
|
/** List of all form steps. */
|
|
9
|
-
steps
|
|
9
|
+
steps?: FormStepObject[];
|
|
10
10
|
/** Default active form step. */
|
|
11
11
|
defaultActiveStep?: string | Path;
|
|
12
12
|
/** Controlled active form step. */
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './FormStep.tsx';
|
|
2
2
|
export * from './FormStepList.tsx';
|
|
3
3
|
export * from './FormStepper.tsx';
|
|
4
|
+
export * from './FormStepperFinishTrigger.tsx';
|
|
5
|
+
export * from './FormStepperNextTrigger.tsx';
|
|
6
|
+
export * from './FormStepperPreviousTrigger.tsx';
|
|
4
7
|
export { FormStepRegistrar } from './FormStepRegistrar.tsx';
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { Button } from '@ostack.tech/ui';
|
|
2
2
|
import { ComponentPropsWithoutRef, ReactNode } from 'react';
|
|
3
3
|
/** Properties of the table control add row trigger component. */
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* provided. If `children` are provided, this property has no effect.
|
|
8
|
-
*/
|
|
9
|
-
defaultButtonText?: ReactNode;
|
|
4
|
+
export type TableControlAddRowTriggerProps = TableControlAddRowTriggerChildlessProps | TableControlAddRowTriggerChildrenProps;
|
|
5
|
+
/** Base properties of the table control add row trigger component. */
|
|
6
|
+
export interface TableControlAddRowTriggerPropsBase {
|
|
10
7
|
/** Function called after the row has been added. */
|
|
11
8
|
onRowAdded?: () => void;
|
|
12
9
|
/**
|
|
@@ -30,9 +27,26 @@ export interface TableControlAddRowTriggerProps extends ComponentPropsWithoutRef
|
|
|
30
27
|
showWhilePrinting?: boolean;
|
|
31
28
|
}
|
|
32
29
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* By default, it renders a button with text `defaultButtonText`, however, this
|
|
36
|
-
* can be overriden by providing `children`.
|
|
30
|
+
* Properties of the table control add row trigger component when rendered
|
|
31
|
+
* without children.
|
|
37
32
|
*/
|
|
33
|
+
export interface TableControlAddRowTriggerChildlessProps extends TableControlAddRowTriggerPropsBase, Omit<ComponentPropsWithoutRef<typeof Button<"button">>, "asChild" | "children"> {
|
|
34
|
+
/** Label displayed on the button. */
|
|
35
|
+
label?: ReactNode;
|
|
36
|
+
/**
|
|
37
|
+
* Label displayed on the button.
|
|
38
|
+
*
|
|
39
|
+
* @deprecated Use `label` instead.
|
|
40
|
+
*/
|
|
41
|
+
defaultButtonText?: ReactNode;
|
|
42
|
+
children?: never;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Properties of the table control add row trigger component when rendered with
|
|
46
|
+
* children.
|
|
47
|
+
*/
|
|
48
|
+
export interface TableControlAddRowTriggerChildrenProps extends TableControlAddRowTriggerPropsBase, ComponentPropsWithoutRef<"button"> {
|
|
49
|
+
children: ReactNode;
|
|
50
|
+
}
|
|
51
|
+
/** Trigger used to add a new row to a table control. */
|
|
38
52
|
export declare const TableControlAddRowTrigger: import('react').ForwardRefExoticComponent<TableControlAddRowTriggerProps & import('react').RefAttributes<HTMLButtonElement>>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { IconButton } from '@ostack.tech/ui';
|
|
2
2
|
import { ComponentPropsWithoutRef, ReactNode } from 'react';
|
|
3
3
|
/** Properties of the table control remove row trigger component. */
|
|
4
|
-
export
|
|
4
|
+
export type TableControlRemoveRowTriggerProps = TableControlRemoveRowTriggerChildlessProps | TableControlRemoveRowTriggerChildrenProps;
|
|
5
|
+
/** Base properties of the table control remove row trigger component. */
|
|
6
|
+
export interface TableControlRemoveRowTriggerChildlessPropsBase {
|
|
5
7
|
/**
|
|
6
8
|
* Whether to show a confirmation message when removing a row.
|
|
7
9
|
*
|
|
@@ -15,11 +17,6 @@ export interface TableControlRemoveRowTriggerProps extends Omit<Partial<Componen
|
|
|
15
17
|
onConfirmRowRemoval?: () => void;
|
|
16
18
|
/** Function called after the row has been removed. */
|
|
17
19
|
onRowRemoved?: () => void;
|
|
18
|
-
/**
|
|
19
|
-
* Label displayed on the icon button rendered by default when no `children`
|
|
20
|
-
* are provided. If `children` are provided, this property has no effect.
|
|
21
|
-
*/
|
|
22
|
-
defaultButtonLabel?: ReactNode;
|
|
23
20
|
/** Title of the confirmation dialog when `showConfirmation` is `true`. */
|
|
24
21
|
confirmDialogTitle?: ReactNode;
|
|
25
22
|
/**
|
|
@@ -44,13 +41,26 @@ export interface TableControlRemoveRowTriggerProps extends Omit<Partial<Componen
|
|
|
44
41
|
* @default false
|
|
45
42
|
*/
|
|
46
43
|
showWhenReadOnly?: boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Base properties of the table control remove row trigger component when
|
|
47
|
+
* rendered without children.
|
|
48
|
+
*/
|
|
49
|
+
export interface TableControlRemoveRowTriggerChildlessProps extends TableControlRemoveRowTriggerChildlessPropsBase, Omit<Partial<ComponentPropsWithoutRef<typeof IconButton<"button">>>, "asChild" | "children"> {
|
|
47
50
|
/**
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
* currently being removed.
|
|
51
|
+
* Label of the icon button.
|
|
52
|
+
*
|
|
53
|
+
* @deprecated Use `label` instead.
|
|
52
54
|
*/
|
|
53
|
-
|
|
55
|
+
defaultButtonLabel?: ReactNode;
|
|
56
|
+
children?: never;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Base properties of the table control remove row trigger component when
|
|
60
|
+
* rendered with children.
|
|
61
|
+
*/
|
|
62
|
+
export interface TableControlRemoveRowTriggerChildrenProps extends TableControlRemoveRowTriggerChildlessPropsBase, Partial<ComponentPropsWithoutRef<"button">> {
|
|
63
|
+
children: ReactNode;
|
|
54
64
|
}
|
|
55
65
|
/**
|
|
56
66
|
* Trigger used to remove a row of a table controlled by a table control.
|
|
@@ -11,7 +11,7 @@ import { LoadActionProps } from '../../components/LoadAction';
|
|
|
11
11
|
import { PrintActionProps } from '../../components/PrintAction';
|
|
12
12
|
import { SaveActionProps } from '../../components/SaveAction';
|
|
13
13
|
import { SubmitActionProps } from '../../components/SubmitAction';
|
|
14
|
-
import {
|
|
14
|
+
import { TableControlAddRowTriggerChildlessProps, TableControlRemoveRowTriggerChildlessProps } from '../../components/TableControl';
|
|
15
15
|
import { ValidateActionProps } from '../../components/ValidateAction';
|
|
16
16
|
/** Localization object representation. */
|
|
17
17
|
export interface LocalizationObject {
|
|
@@ -29,7 +29,7 @@ export interface LocalizationObject {
|
|
|
29
29
|
SaveAction: Pick<SaveActionProps, "label" | "keybinds" | "saveOptionsLabel" | "saveAsLabel" | "saveAsKeybinds" | "successMessage" | "errorMessage">;
|
|
30
30
|
PrintAction: Pick<PrintActionProps, "label" | "keybinds">;
|
|
31
31
|
SubmitAction: Pick<SubmitActionProps, "label" | "keybinds" | "dialogTitle" | "dialogDescription" | "dialogBody" | "dialogOkText" | "dialogCancelText" | "confirmWarningsCheckboxLabel" | "successMessage" | "errorMessage">;
|
|
32
|
-
TableControlAddRowTrigger: Pick<
|
|
33
|
-
TableControlRemoveRowTrigger: Pick<
|
|
32
|
+
TableControlAddRowTrigger: Pick<TableControlAddRowTriggerChildlessProps, "label">;
|
|
33
|
+
TableControlRemoveRowTrigger: Pick<TableControlRemoveRowTriggerChildlessProps, "label" | "confirmDialogTitle" | "confirmDialogMessage" | "confirmDialogOkText" | "confirmDialogCancelText">;
|
|
34
34
|
ValidateAction: Pick<ValidateActionProps, "label" | "keybinds">;
|
|
35
35
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ostack.tech/ui-kform",
|
|
3
3
|
"description": "Integration of ostack/UI with ostack/KForm.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.11.1",
|
|
5
5
|
"homepage": "https://ui.ostack.tech/",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Opensoft",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"@fortawesome/free-solid-svg-icons": "^6.2.0 || ^7.0.0",
|
|
51
51
|
"@ostack.tech/kform": "~0.32.0",
|
|
52
52
|
"@ostack.tech/kform-react": "~0.32.0",
|
|
53
|
-
"@ostack.tech/ui": "~0.
|
|
53
|
+
"@ostack.tech/ui": "~0.11.1",
|
|
54
54
|
"@types/react": "^18.0.0 || ^19.0.0",
|
|
55
55
|
"@types/react-dom": "^18.0.0 || ^19.0.0",
|
|
56
56
|
"date-fns": "^4.1.0",
|
package/scss/_utils.scss
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@use "@ostack.tech/ui/scss/utils" as
|
|
1
|
+
@use "@ostack.tech/ui/scss/utils" as o-ui;
|
|
2
2
|
|
|
3
3
|
// Manager
|
|
4
4
|
$annexes-manager-min-width: 200px !default;
|
|
@@ -8,8 +8,7 @@ $annexes-tab-issues-popover-button-icon-border-width: 1px !default;
|
|
|
8
8
|
$annexes-tab-issues-popover-button-padding: calc(
|
|
9
9
|
(
|
|
10
10
|
(
|
|
11
|
-
|
|
12
|
-
ostack-ui.$icon-button-md-font-size -
|
|
11
|
+
o-ui.$icon-button-md-min-size - o-ui.$icon-button-md-font-size -
|
|
13
12
|
$annexes-tab-issues-popover-button-icon-border-width * 2
|
|
14
13
|
) /
|
|
15
14
|
2
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
@use "sass:color";
|
|
2
|
-
@use "@ostack.tech/ui/scss/utils" as
|
|
2
|
+
@use "@ostack.tech/ui/scss/utils" as o-ui;
|
|
3
3
|
@use "Annexes-variables" as *;
|
|
4
4
|
@use "../../scss/base-variables" as *;
|
|
5
5
|
|
|
@@ -16,28 +16,28 @@
|
|
|
16
16
|
flex: 1 1 auto;
|
|
17
17
|
|
|
18
18
|
&:not(:last-child) {
|
|
19
|
-
margin-right:
|
|
19
|
+
margin-right: o-ui.spacing(2);
|
|
20
20
|
|
|
21
|
-
@include
|
|
22
|
-
margin-right:
|
|
21
|
+
@include o-ui.media-breakpoint-up(sm) {
|
|
22
|
+
margin-right: o-ui.spacing(4);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
&__menu-container {
|
|
28
|
-
margin-bottom:
|
|
29
|
-
padding-right:
|
|
30
|
-
box-shadow:
|
|
28
|
+
margin-bottom: o-ui.$tabs-tab-list-annexes-margin-bottom;
|
|
29
|
+
padding-right: o-ui.spacing(2);
|
|
30
|
+
box-shadow: o-ui.$tabs-tab-list-annexes-box-shadow;
|
|
31
31
|
|
|
32
|
-
@include
|
|
33
|
-
padding-right:
|
|
32
|
+
@include o-ui.media-breakpoint-up(sm) {
|
|
33
|
+
padding-right: o-ui.spacing(4);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
&__issues-popover-container {
|
|
38
|
-
margin-left:
|
|
39
|
-
margin-right:
|
|
40
|
-
padding-top:
|
|
38
|
+
margin-left: o-ui.spacing(-4);
|
|
39
|
+
margin-right: o-ui.spacing(7);
|
|
40
|
+
padding-top: o-ui.spacing(0.5);
|
|
41
41
|
height: $tab-height;
|
|
42
42
|
}
|
|
43
43
|
|
|
@@ -50,14 +50,14 @@
|
|
|
50
50
|
height: $tab-height;
|
|
51
51
|
border-bottom-left-radius: 0;
|
|
52
52
|
border-bottom-right-radius: 0;
|
|
53
|
-
color: var(--#{
|
|
53
|
+
color: var(--#{o-ui.$prefix}primary-9) !important;
|
|
54
54
|
|
|
55
55
|
&[data-state="open"] {
|
|
56
|
-
border-color:
|
|
56
|
+
border-color: o-ui.$neutral-7;
|
|
57
57
|
border-bottom-color: transparent;
|
|
58
|
-
background-color: var(--#{
|
|
58
|
+
background-color: var(--#{o-ui.$prefix}background-color) !important;
|
|
59
59
|
position: relative;
|
|
60
|
-
z-index:
|
|
60
|
+
z-index: o-ui.$z-index-dropdown + 1;
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
border-bottom-left-radius: 0;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
@include
|
|
75
|
+
@include o-ui.media-breakpoint-down(sm) {
|
|
76
76
|
min-width: 100vw;
|
|
77
77
|
margin-left: -5px; // XXX: Override Radix's hard-coded collision margin
|
|
78
78
|
border-radius: 0;
|
|
@@ -87,14 +87,12 @@
|
|
|
87
87
|
content: "";
|
|
88
88
|
position: absolute;
|
|
89
89
|
top: 0;
|
|
90
|
-
left: calc(
|
|
91
|
-
(ostack-ui.$menu-padding-x + ostack-ui.$menu-item-margin-x) * -1
|
|
92
|
-
);
|
|
90
|
+
left: calc((o-ui.$menu-padding-x + o-ui.$menu-item-margin-x) * -1);
|
|
93
91
|
height: 100%;
|
|
94
92
|
width: 3px;
|
|
95
|
-
border-radius: 0 var(--#{
|
|
96
|
-
var(--#{
|
|
97
|
-
background-color: var(--#{
|
|
93
|
+
border-radius: 0 var(--#{o-ui.$prefix}border-radius-sm)
|
|
94
|
+
var(--#{o-ui.$prefix}border-radius-sm) 0;
|
|
95
|
+
background-color: var(--#{o-ui.$prefix}accent-9);
|
|
98
96
|
}
|
|
99
97
|
}
|
|
100
98
|
|
|
@@ -115,27 +113,27 @@
|
|
|
115
113
|
}
|
|
116
114
|
|
|
117
115
|
&__menu-annex-title {
|
|
118
|
-
font-weight:
|
|
116
|
+
font-weight: o-ui.$font-weight-bold;
|
|
119
117
|
overflow: hidden;
|
|
120
118
|
text-overflow: ellipsis;
|
|
121
119
|
white-space: nowrap;
|
|
122
120
|
}
|
|
123
121
|
|
|
124
122
|
&__menu-annex-subtitle {
|
|
125
|
-
margin-left:
|
|
126
|
-
font-weight:
|
|
127
|
-
font-size:
|
|
128
|
-
line-height:
|
|
123
|
+
margin-left: o-ui.spacing(2);
|
|
124
|
+
font-weight: o-ui.$font-weight-normal;
|
|
125
|
+
font-size: o-ui.$font-size-xs;
|
|
126
|
+
line-height: o-ui.$font-size-xs;
|
|
129
127
|
text-transform: none;
|
|
130
128
|
}
|
|
131
129
|
|
|
132
130
|
&__menu-annex-description {
|
|
133
|
-
font-weight:
|
|
131
|
+
font-weight: o-ui.$font-weight-normal;
|
|
134
132
|
text-transform: none;
|
|
135
133
|
}
|
|
136
134
|
|
|
137
135
|
&__menu-annex-remove {
|
|
138
|
-
margin-left:
|
|
136
|
+
margin-left: o-ui.spacing(2);
|
|
139
137
|
$min-size: 28px;
|
|
140
138
|
min-height: $min-size;
|
|
141
139
|
min-width: $min-size;
|
|
@@ -148,21 +146,25 @@
|
|
|
148
146
|
|
|
149
147
|
&__menu-new-annex-title {
|
|
150
148
|
flex: 1;
|
|
151
|
-
font-weight:
|
|
152
|
-
color:
|
|
149
|
+
font-weight: o-ui.$font-weight-bold;
|
|
150
|
+
color: o-ui.$primary-9;
|
|
153
151
|
}
|
|
154
152
|
|
|
155
153
|
&__menu-new-annex-description {
|
|
156
154
|
flex: 2;
|
|
157
|
-
margin-left:
|
|
158
|
-
font-weight:
|
|
155
|
+
margin-left: o-ui.spacing(2);
|
|
156
|
+
font-weight: o-ui.$font-weight-normal;
|
|
159
157
|
text-transform: none;
|
|
160
158
|
}
|
|
161
159
|
|
|
162
160
|
&__tab-inner {
|
|
161
|
+
min-height: $tab-height;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
&__tab-text {
|
|
165
|
+
display: flex;
|
|
163
166
|
flex-direction: column;
|
|
164
167
|
height: 100%;
|
|
165
|
-
min-height: $tab-height;
|
|
166
168
|
}
|
|
167
169
|
|
|
168
170
|
&__tab-title,
|
|
@@ -176,61 +178,58 @@
|
|
|
176
178
|
|
|
177
179
|
&__tab-title {
|
|
178
180
|
font-weight: var(
|
|
179
|
-
--#{
|
|
180
|
-
var(
|
|
181
|
-
--#{ostack-ui.$prefix}tabs-tab-font-weight,
|
|
182
|
-
ostack-ui.$font-weight-bold
|
|
183
|
-
)
|
|
181
|
+
--#{o-ui.$prefix}tabs-tab-open-font-weight,
|
|
182
|
+
var(--#{o-ui.$prefix}tabs-tab-font-weight, o-ui.$font-weight-bold)
|
|
184
183
|
);
|
|
185
184
|
}
|
|
186
185
|
|
|
187
186
|
&__tab-subtitle {
|
|
188
|
-
font-weight:
|
|
189
|
-
font-size:
|
|
190
|
-
line-height:
|
|
187
|
+
font-weight: o-ui.$font-weight-normal;
|
|
188
|
+
font-size: o-ui.$font-size-xs;
|
|
189
|
+
line-height: o-ui.$line-height-xs;
|
|
191
190
|
}
|
|
192
191
|
|
|
193
192
|
// Tab issues
|
|
194
193
|
&__tab[data-has-issues] &__tab-inner {
|
|
195
194
|
padding-right: calc(
|
|
196
|
-
|
|
197
|
-
|
|
195
|
+
o-ui.$tabs-tab-inner-annexes-padding-x * 2 +
|
|
196
|
+
o-ui.$icon-button-md-font-size +
|
|
198
197
|
$annexes-tab-issues-popover-button-padding
|
|
199
198
|
);
|
|
200
199
|
}
|
|
201
200
|
|
|
202
201
|
&__tab-issues-popover-button-container {
|
|
203
|
-
z-index: calc(
|
|
202
|
+
z-index: calc(o-ui.$tabs-tab-focus-z-index + 1);
|
|
204
203
|
margin-left: calc(
|
|
205
|
-
|
|
206
|
-
-1 - var(--#{
|
|
204
|
+
o-ui.$icon-button-md-min-size *
|
|
205
|
+
-1 - var(--#{o-ui.$prefix}tabs-tab-list-gap-x) -
|
|
207
206
|
$annexes-tab-issues-popover-button-padding / 2
|
|
208
207
|
);
|
|
209
208
|
padding-right: calc(
|
|
210
|
-
var(--#{
|
|
209
|
+
var(--#{o-ui.$prefix}tabs-tab-list-gap-x) +
|
|
211
210
|
$annexes-tab-issues-popover-button-padding / 2
|
|
212
211
|
);
|
|
213
212
|
}
|
|
214
213
|
|
|
215
|
-
&__tab-issues-popover-button .#{
|
|
214
|
+
&__tab-issues-popover-button .#{o-ui.$prefix}icon {
|
|
216
215
|
// Border around the icon
|
|
217
216
|
filter: drop-shadow(
|
|
218
217
|
/* Top */ 0
|
|
219
218
|
calc($annexes-tab-issues-popover-button-icon-border-width * -1) 0
|
|
220
|
-
var(--#{
|
|
219
|
+
var(--#{o-ui.$prefix}background-color)
|
|
221
220
|
)
|
|
222
221
|
drop-shadow(
|
|
223
222
|
/* Right */ $annexes-tab-issues-popover-button-icon-border-width 0 0
|
|
224
|
-
var(--#{
|
|
223
|
+
var(--#{o-ui.$prefix}background-color)
|
|
225
224
|
)
|
|
226
225
|
drop-shadow(
|
|
227
226
|
/* Bottom */ 0 $annexes-tab-issues-popover-button-icon-border-width 0
|
|
228
|
-
var(--#{
|
|
227
|
+
var(--#{o-ui.$prefix}background-color)
|
|
229
228
|
)
|
|
230
229
|
drop-shadow(
|
|
231
230
|
/* Left */
|
|
232
231
|
calc($annexes-tab-issues-popover-button-icon-border-width * -1) 0 0
|
|
233
|
-
var(--#{
|
|
232
|
+
var(--#{o-ui.$prefix}background-color)
|
|
234
233
|
);
|
|
235
234
|
}
|
|
236
235
|
|
|
@@ -251,14 +250,14 @@
|
|
|
251
250
|
align-items: baseline;
|
|
252
251
|
|
|
253
252
|
.#{$prefix}annexes__tab-title {
|
|
254
|
-
font-size: var(--#{
|
|
253
|
+
font-size: var(--#{o-ui.$prefix}font-size-md);
|
|
255
254
|
}
|
|
256
255
|
.#{$prefix}annexes__tab-subtitle {
|
|
257
256
|
&:not(:first-child)::before {
|
|
258
257
|
content: "\00a0—\00a0";
|
|
259
258
|
}
|
|
260
259
|
|
|
261
|
-
font-size: var(--#{
|
|
260
|
+
font-size: var(--#{o-ui.$prefix}font-size-sm);
|
|
262
261
|
}
|
|
263
262
|
}
|
|
264
263
|
}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
@use "sass:map";
|
|
2
|
-
@use "@ostack.tech/ui/scss/utils" as
|
|
2
|
+
@use "@ostack.tech/ui/scss/utils" as o-ui;
|
|
3
3
|
@use "../../scss/base-variables" as *;
|
|
4
4
|
|
|
5
5
|
.#{$prefix}file-control {
|
|
6
6
|
&__viewer-dialog {
|
|
7
7
|
width: fit-content;
|
|
8
8
|
min-width: 0;
|
|
9
|
-
max-width: min(
|
|
10
|
-
calc(100dvw - ostack-ui.spacing(14)),
|
|
11
|
-
ostack-ui.$dialog-xl-width
|
|
12
|
-
);
|
|
9
|
+
max-width: min(calc(100dvw - o-ui.spacing(14)), o-ui.$dialog-xl-width);
|
|
13
10
|
}
|
|
14
11
|
|
|
15
12
|
&__viewer-download {
|
|
16
|
-
margin-left:
|
|
13
|
+
margin-left: o-ui.spacing(4);
|
|
17
14
|
}
|
|
18
15
|
|
|
19
16
|
&__viewer-dialog-title {
|
|
@@ -36,9 +33,9 @@
|
|
|
36
33
|
max-height: $max-height;
|
|
37
34
|
margin: 0 auto;
|
|
38
35
|
|
|
39
|
-
border-bottom-left-radius: var(--#{
|
|
40
|
-
border-bottom-right-radius: var(--#{
|
|
41
|
-
background-color: var(--#{
|
|
36
|
+
border-bottom-left-radius: var(--#{o-ui.$prefix}border-radius-xs);
|
|
37
|
+
border-bottom-right-radius: var(--#{o-ui.$prefix}border-radius-xs);
|
|
38
|
+
background-color: var(--#{o-ui.$prefix}background-color);
|
|
42
39
|
|
|
43
40
|
&:not([type^="image/"]):not([type^="video/"]):not([type^="audio/"]) {
|
|
44
41
|
width: 100vw;
|
|
@@ -47,6 +44,6 @@
|
|
|
47
44
|
}
|
|
48
45
|
|
|
49
46
|
&__viewer-fallback {
|
|
50
|
-
margin:
|
|
47
|
+
margin: o-ui.spacing(3) o-ui.spacing(4);
|
|
51
48
|
}
|
|
52
49
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
@use "@ostack.tech/ui/scss/utils" as o-ui;
|
|
2
|
+
|
|
3
|
+
$form-app-default-min-height: 100dvh !default;
|
|
4
|
+
$form-app-background-color: var(--#{o-ui.$prefix}background-color) !default;
|
|
5
|
+
$form-app-base-sticky-top: null !default;
|
|
6
|
+
|
|
7
|
+
// Focus
|
|
8
|
+
$form-app-focus-outline: 2px solid o-ui.$primary-8 !default;
|
|
9
|
+
$form-app-focus-outline-offset: -3px !default;
|