@olenbetong/appframe-ds 1.2.0 → 1.3.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/CHANGELOG.md +20 -0
- package/package.json +7 -7
- package/scripts/copyAssets.mjs +27 -27
- package/src/AfLookup/Lookup.css +129 -129
- package/src/AfLookup/Lookup.tsx +184 -184
- package/src/AfLookup/LookupCombobox.css +78 -78
- package/src/AfLookup/LookupCombobox.tsx +237 -237
- package/src/AfLookup/LookupEdit.tsx +130 -130
- package/src/AfLookup/LookupGrid.tsx +124 -124
- package/src/AfLookup/index.ts +5 -5
- package/src/autocomplete/Autocomplete.css +256 -256
- package/src/autocomplete/Autocomplete.tsx +320 -320
- package/src/autocomplete/AutocompleteFrame.tsx +168 -168
- package/src/autocomplete/Combobox.tsx +286 -286
- package/src/autocomplete/index.ts +4 -4
- package/src/autocomplete/types.ts +204 -204
- package/src/autocomplete/utils.ts +183 -183
- package/src/binding/BoundNumericTextField.tsx +102 -102
- package/src/binding/BoundTextField.tsx +49 -49
- package/src/binding/CancelButton.tsx +30 -30
- package/src/binding/CancelIconButton.tsx +30 -30
- package/src/binding/DataEditToolbar.css +23 -0
- package/src/binding/DataEditToolbar.tsx +84 -92
- package/src/binding/DeleteButton.tsx +35 -35
- package/src/binding/DeleteIconButton.tsx +35 -35
- package/src/binding/RefreshButton.tsx +31 -31
- package/src/binding/RefreshIconButton.tsx +33 -33
- package/src/binding/RefreshRowIconButton.tsx +33 -33
- package/src/binding/SaveButton.tsx +37 -37
- package/src/binding/SaveIconButton.tsx +38 -38
- package/src/container/Container.tsx +49 -49
- package/src/container/index.ts +1 -1
- package/src/cutoff/CutOffPicker.css +12 -12
- package/src/cutoff/CutOffPicker.tsx +165 -165
- package/src/cutoff/context.tsx +194 -194
- package/src/cutoff/dsCutOffDates.ts +21 -21
- package/src/cutoff/index.ts +4 -4
- package/src/cutoff/utils.test.ts +59 -59
- package/src/cutoff/utils.ts +276 -276
- package/src/filter/ChipListInput.tsx +79 -79
- package/src/filter/FieldFilterPanel.css +150 -150
- package/src/filter/FieldFilterPanel.tsx +309 -309
- package/src/filter/FilterBuilder.css +152 -152
- package/src/filter/FilterBuilder.test.tsx +153 -153
- package/src/filter/FilterBuilder.tsx +435 -435
- package/src/filter/FilterEditor.css +231 -231
- package/src/filter/FilterEditor.test.tsx +259 -259
- package/src/filter/FilterEditor.tsx +75 -75
- package/src/filter/FilterGroupEditor.tsx +160 -160
- package/src/filter/FilterNameDialog.css +22 -22
- package/src/filter/FilterNameDialog.tsx +81 -81
- package/src/filter/FilterRow.tsx +117 -117
- package/src/filter/FilterShareDialog.css +28 -28
- package/src/filter/FilterShareDialog.tsx +201 -201
- package/src/filter/FilterStringField.tsx +78 -78
- package/src/filter/FilterValueEditor.tsx +220 -220
- package/src/filter/SavedFilterTree.css +107 -107
- package/src/filter/SavedFilterTree.test.tsx +94 -94
- package/src/filter/SavedFilterTree.tsx +218 -218
- package/src/filter/fieldFilter.test.ts +158 -158
- package/src/filter/fieldFilter.ts +139 -139
- package/src/filter/index.ts +27 -27
- package/src/filter/types.ts +38 -38
- package/src/filter/useDistinctValues.test.ts +102 -102
- package/src/filter/useDistinctValues.ts +230 -230
- package/src/global.d.ts +11 -11
- package/src/grid/AfGridColumnsPanel.tsx +118 -118
- package/src/grid/AfGridContext.tsx +51 -51
- package/src/grid/AfGridError.tsx +46 -46
- package/src/grid/AfHeaderFilterCell.tsx +147 -147
- package/src/grid/AfHeaderFilterPanel.tsx +111 -111
- package/src/grid/GridEditLookup.css +12 -12
- package/src/grid/GridEditLookup.tsx +121 -121
- package/src/grid/Toolbar.tsx +233 -233
- package/src/grid/editing.ts +100 -100
- package/src/grid/filter.ts +78 -78
- package/src/grid/formatters.ts +48 -48
- package/src/grid/index.css +245 -245
- package/src/grid/index.tsx +503 -489
- package/src/grid/license.ts +48 -48
- package/src/grid/localization.ts +369 -369
- package/src/grid/slots/index.tsx +307 -307
- package/src/grid/slots/slots.css +64 -64
- package/src/grid/theme.tsx +138 -138
- package/src/grid/useAfColumns.tsx +371 -371
- package/src/grid/useAfCurrentIndex.ts +63 -63
- package/src/grid/useAfData.ts +20 -20
- package/src/grid/useAfFilter.ts +160 -160
- package/src/grid/useAfFilterFields.ts +55 -55
- package/src/grid/useAfGridApi.ts +71 -71
- package/src/grid/useAfKeyBindings.ts +36 -36
- package/src/grid/useAfNewItemRow.ts +258 -258
- package/src/grid/useAfPagination.ts +53 -53
- package/src/grid/useAfPersistedState.ts +230 -230
- package/src/grid/useAfRowEditModel.ts +145 -145
- package/src/grid/useAfRowGrouping.ts +47 -47
- package/src/grid/useAfServerAggregation.test.ts +68 -0
- package/src/grid/useAfServerAggregation.ts +158 -145
- package/src/grid/useAfSortModel.ts +84 -84
- package/src/i18n.ts +13 -13
- package/src/index.ts +14 -14
- package/src/input/InputAdornments.css +84 -75
- package/src/input/InputAdornments.tsx +102 -102
- package/src/input/index.ts +1 -1
- package/src/layout/AppMenu.tsx +74 -74
- package/src/layout/AppMenuDrawer.css +70 -70
- package/src/layout/AppMenuDrawer.tsx +122 -122
- package/src/layout/ErrorBoundary.tsx +162 -162
- package/src/layout/PageContainer.css +21 -2
- package/src/layout/PageContainer.tsx +18 -2
- package/src/layout/ResponsiveDialog.css +86 -86
- package/src/layout/ResponsiveDialog.tsx +55 -55
- package/src/layout/index.tsx +69 -69
- package/src/link/Link.tsx +23 -23
- package/src/link/index.ts +1 -1
- package/src/mdi/Mdi.css +138 -138
- package/src/mdi/Mdi.test.tsx +91 -91
- package/src/mdi/Mdi.tsx +141 -141
- package/src/mdi/MdiConfirmCloseDialog.tsx +47 -47
- package/src/mdi/MdiContext.tsx +59 -59
- package/src/mdi/MdiDocumentContext.tsx +60 -60
- package/src/mdi/MdiPanel.tsx +61 -61
- package/src/mdi/MdiRestore.test.tsx +86 -86
- package/src/mdi/MdiTab.tsx +30 -30
- package/src/mdi/controller.test.ts +382 -382
- package/src/mdi/controller.ts +656 -656
- package/src/mdi/dockviewHost.ts +132 -132
- package/src/mdi/fakeHost.ts +200 -200
- package/src/mdi/host.ts +44 -44
- package/src/mdi/ids.test.ts +20 -20
- package/src/mdi/ids.ts +18 -18
- package/src/mdi/index.ts +31 -31
- package/src/mdi/layoutRestore.test.ts +156 -156
- package/src/mdi/layoutRestore.ts +311 -311
- package/src/mdi/layoutSpec.test.ts +143 -143
- package/src/mdi/layoutSpec.ts +214 -214
- package/src/mdi/layoutStore.test.ts +93 -93
- package/src/mdi/layoutStore.ts +99 -99
- package/src/mdi/memorySettingsStore.ts +21 -21
- package/src/mdi/registry.ts +34 -34
- package/src/mdi/testTypes.ts +37 -37
- package/src/mdi/theme.ts +22 -22
- package/src/mdi/types.ts +214 -214
- package/src/page/Page.css +53 -53
- package/src/page/PageBlock.css +64 -64
- package/src/page/PageBlock.tsx +92 -92
- package/src/page/PageHeader.css +88 -88
- package/src/page/PageHeader.tsx +115 -115
- package/src/page/PageTitle.css +5 -5
- package/src/page/PageTitle.tsx +21 -21
- package/src/page/index.ts +4 -4
- package/src/paper/Paper.tsx +52 -52
- package/src/progress/LinearProgress.css +93 -93
- package/src/progress/LinearProgress.tsx +104 -104
- package/src/progress/index.ts +1 -1
- package/src/report-downloader/ReportDownloader.css +67 -67
- package/src/report-downloader/components/StatusItem.tsx +87 -87
- package/src/report-downloader/components/StatusList.tsx +28 -28
- package/src/report-downloader/index.ts +41 -41
- package/src/report-downloader/status.tsx +92 -92
- package/src/sortable/DropIndicator.css +51 -51
- package/src/sortable/DropIndicator.tsx +27 -27
- package/src/sortable/SortableItemList.css +21 -21
- package/src/sortable/SortableItemList.tsx +264 -264
- package/src/sortable/index.ts +8 -8
- package/src/sortable/reorderSortOrder.ts +126 -126
- package/src/sortable/sortOrder.ts +101 -101
- package/src/sortable/types.ts +9 -9
- package/src/sortable/useSortableContainer.ts +53 -53
- package/src/sortable/useSortableItem.ts +95 -95
- package/src/sortable/useSortableList.ts +117 -117
- package/src/test/happy-dom-document-class.ts +24 -24
- package/src/test/setup.ts +12 -12
- package/src/theme/useDsColorScheme.ts +53 -53
- package/tsconfig.build.json +9 -9
- package/tsconfig.json +8 -8
- package/vitest.config.ts +10 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @olenbetong/appframe-ds
|
|
2
2
|
|
|
3
|
+
## 1.3.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 2c2ed02: `DataEditToolbar`: the previous/next buttons no longer stack (Designsystemet buttons are `display: flex`, so the navigation group is a flex row now), and the toolbar is a tinted bar with a bottom border in the theme's tokens instead of black-at-12% top and bottom borders, which were invisible in dark mode and doubled up against a tab list above it.
|
|
8
|
+
- c28f772: `InputAdornments`: the hover style is drawn on the wrapper like the focus style (Designsystemet's inner outline, on the whole control), and the inner input no longer shows its own hover outline.
|
|
9
|
+
- Updated dependencies [a4158e8]
|
|
10
|
+
- @olenbetong/appframe-react@2.2.2
|
|
11
|
+
|
|
12
|
+
## 1.3.0
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- 16232b8: The 1.2.0 on npm was published from a checkout that predates its own changelog: it carries neither the cut-off family (`CutOffPicker`, `CutOffProvider`, `useCutOff`, the period helpers), `ResponsiveDialog`, `PageTitle`, `Link`, `GridEditLookup` and the `DataGrid` namespace on the grid entry, nor the `PageContainer` `maxWidth` fix and the server-side grid totals following the filters on paged data objects. This version is the first on npm with all of it.
|
|
17
|
+
|
|
3
18
|
## 1.2.0
|
|
4
19
|
|
|
5
20
|
### Minor Changes
|
|
@@ -7,6 +22,11 @@
|
|
|
7
22
|
- b38f806: Three more `@olenbetong/appframe-mui` equivalents, so apps can drop that package: the cut-off period family (`CutOffPicker`, `CutOffProvider`, `useCutOff`, `cutOffToPlainDate`, `plainDateToCutOff`, `getPeriodLabel`, the range helpers and `PeriodType`), `ResponsiveDialog` (a Designsystemet `Dialog` that fills small screens, decided by CSS), and `PageTitle` (a Designsystemet `Heading`). Also `Link` (a Designsystemet link that navigates with react-router), `GridEditLookup` for `@olenbetong/appframe-ds/grid`, and MUI X re-exported from the grid entry as the `DataGrid` namespace, so a platform app never bundles its own copy. The cut-off utilities use Temporal for ISO weeks; the package now depends on `temporal-polyfill`.
|
|
8
23
|
- cd7fc4f: Add label tag support with optional and required indicators.
|
|
9
24
|
|
|
25
|
+
### Patch Changes
|
|
26
|
+
|
|
27
|
+
- cc4bdf4: `PageContainer` honours its `maxWidth` prop again. The prop was accepted and dropped, so every page that asked for `sm`, `md`, `lg` or `xl` rendered full width; it now limits the content to the MUI Container scale (36/48/64/80rem plus the gutters), against the leading edge as before.
|
|
28
|
+
- 91838e7: Server-side grid totals now follow the filters on a dynamically loading data object. `useAfServerAggregation` reloaded only on `onDataLoaded`, which a paged data object never fires, so the totals kept the values from the first load; it now also reloads when a paged load starts over (`onPartialDataLoaded` with `skip` 0). `AfGrid` also passes MUI's default `getAggregationPosition`, the one prop that makes the grid re-aggregate when the aggregation functions change, so the footer shows the totals as they arrive instead of those of the previous load.
|
|
29
|
+
|
|
10
30
|
## 1.1.0
|
|
11
31
|
|
|
12
32
|
### Minor Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@olenbetong/appframe-ds",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "Components that bind Designsystemet components to Appframe data objects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./es/index.d.ts",
|
|
@@ -63,17 +63,17 @@
|
|
|
63
63
|
"@atlaskit/pragmatic-drag-and-drop": "3.1.0",
|
|
64
64
|
"@atlaskit/pragmatic-drag-and-drop-hitbox": "2.2.2",
|
|
65
65
|
"@base-ui/react": "1.8.0",
|
|
66
|
+
"@olenbetong/appframe-core": "2.14.0",
|
|
67
|
+
"@olenbetong/appframe-data": "1.7.2",
|
|
68
|
+
"@olenbetong/appframe-react": "2.2.2",
|
|
66
69
|
"clsx": "^2.1.1",
|
|
67
70
|
"dockview-react": "8.3.1",
|
|
68
71
|
"localforage": "^1.10.0",
|
|
69
72
|
"mitt": "^3.0.1",
|
|
70
73
|
"react": "19.3.0",
|
|
71
74
|
"react-dom": "19.3.0",
|
|
72
|
-
"react-window": "2.3.
|
|
73
|
-
"temporal-polyfill": "1.0.5"
|
|
74
|
-
"@olenbetong/appframe-core": "2.14.0",
|
|
75
|
-
"@olenbetong/appframe-data": "1.7.2",
|
|
76
|
-
"@olenbetong/appframe-react": "2.2.1"
|
|
75
|
+
"react-window": "2.3.3",
|
|
76
|
+
"temporal-polyfill": "1.0.5"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
79
|
"@digdir/designsystemet-react": "1.22.0",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"@types/react": "19.3.0",
|
|
91
91
|
"@types/react-dom": "19.3.0",
|
|
92
92
|
"happy-dom": "20.14.5",
|
|
93
|
-
"react-error-boundary": "6.1.
|
|
93
|
+
"react-error-boundary": "6.1.6",
|
|
94
94
|
"react-router": "8.4.0",
|
|
95
95
|
"typescript": "7.0.2"
|
|
96
96
|
},
|
package/scripts/copyAssets.mjs
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* tsc emits the JavaScript into es/ but not the stylesheets the components import next to
|
|
3
|
-
* themselves. Copy every .css under src/ to the same path under es/, so a new component's
|
|
4
|
-
* stylesheet is published without anyone remembering a list.
|
|
5
|
-
*/
|
|
6
|
-
import { cpSync, mkdirSync, readdirSync } from "node:fs";
|
|
7
|
-
import { dirname, join, relative } from "node:path";
|
|
8
|
-
|
|
9
|
-
function* cssFiles(dir) {
|
|
10
|
-
for (let entry of readdirSync(dir, { withFileTypes: true })) {
|
|
11
|
-
let path = join(dir, entry.name);
|
|
12
|
-
if (entry.isDirectory()) {
|
|
13
|
-
yield* cssFiles(path);
|
|
14
|
-
} else if (entry.name.endsWith(".css")) {
|
|
15
|
-
yield path;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
let count = 0;
|
|
21
|
-
for (let src of cssFiles("src")) {
|
|
22
|
-
let dest = join("es", relative("src", src));
|
|
23
|
-
mkdirSync(dirname(dest), { recursive: true });
|
|
24
|
-
cpSync(src, dest);
|
|
25
|
-
count++;
|
|
26
|
-
}
|
|
27
|
-
console.log(`Copied ${count} stylesheets from src/ to es/`);
|
|
1
|
+
/*
|
|
2
|
+
* tsc emits the JavaScript into es/ but not the stylesheets the components import next to
|
|
3
|
+
* themselves. Copy every .css under src/ to the same path under es/, so a new component's
|
|
4
|
+
* stylesheet is published without anyone remembering a list.
|
|
5
|
+
*/
|
|
6
|
+
import { cpSync, mkdirSync, readdirSync } from "node:fs";
|
|
7
|
+
import { dirname, join, relative } from "node:path";
|
|
8
|
+
|
|
9
|
+
function* cssFiles(dir) {
|
|
10
|
+
for (let entry of readdirSync(dir, { withFileTypes: true })) {
|
|
11
|
+
let path = join(dir, entry.name);
|
|
12
|
+
if (entry.isDirectory()) {
|
|
13
|
+
yield* cssFiles(path);
|
|
14
|
+
} else if (entry.name.endsWith(".css")) {
|
|
15
|
+
yield path;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
let count = 0;
|
|
21
|
+
for (let src of cssFiles("src")) {
|
|
22
|
+
let dest = join("es", relative("src", src));
|
|
23
|
+
mkdirSync(dirname(dest), { recursive: true });
|
|
24
|
+
cpSync(src, dest);
|
|
25
|
+
count++;
|
|
26
|
+
}
|
|
27
|
+
console.log(`Copied ${count} stylesheets from src/ to es/`);
|
package/src/AfLookup/Lookup.css
CHANGED
|
@@ -1,129 +1,129 @@
|
|
|
1
|
-
.ObLookup-inputWrap {
|
|
2
|
-
position: relative;
|
|
3
|
-
|
|
4
|
-
.ds-input {
|
|
5
|
-
padding-inline-end: var(--ObLookup-buttons-width, 3rem);
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
.ObLookup-labelTag {
|
|
10
|
-
margin-inline-start: var(--ds-size-2, 0.5rem);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
.ObLookup-buttons {
|
|
14
|
-
position: absolute;
|
|
15
|
-
inset-inline-end: 0;
|
|
16
|
-
inset-block-end: 0;
|
|
17
|
-
/* Match the .ds-input height so the buttons center on the input row,
|
|
18
|
-
also when a label or description is rendered above the input */
|
|
19
|
-
height: var(--ds-size-12, 3rem);
|
|
20
|
-
display: flex;
|
|
21
|
-
align-items: center;
|
|
22
|
-
padding-inline-end: var(--ds-size-1, 0.25rem);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.ObLookup-dialog {
|
|
26
|
-
border: 0;
|
|
27
|
-
margin-block-start: 0;
|
|
28
|
-
padding: 1rem;
|
|
29
|
-
overflow: hidden;
|
|
30
|
-
|
|
31
|
-
background-color: whitesmoke;
|
|
32
|
-
|
|
33
|
-
transition:
|
|
34
|
-
display 0.2s allow-discrete,
|
|
35
|
-
transform 0.2s ease-out,
|
|
36
|
-
scale 0.2s ease-out,
|
|
37
|
-
opacity 0.2s ease-out;
|
|
38
|
-
|
|
39
|
-
&::backdrop {
|
|
40
|
-
opacity: 0;
|
|
41
|
-
background: rgb(0 0 0 / 0.2);
|
|
42
|
-
transition:
|
|
43
|
-
display 0.2s allow-discrete,
|
|
44
|
-
opacity 0.2s ease-out;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
&[open]::backdrop {
|
|
48
|
-
opacity: 1;
|
|
49
|
-
|
|
50
|
-
@starting-style {
|
|
51
|
-
opacity: 0;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
@media (width < 768px) {
|
|
56
|
-
inset: 10vh 0.5rem 0;
|
|
57
|
-
|
|
58
|
-
border-radius: 1rem 1rem 0 0;
|
|
59
|
-
height: 90vh;
|
|
60
|
-
width: calc(100vw - 1rem);
|
|
61
|
-
max-width: 100vw;
|
|
62
|
-
transform: translateY(100%);
|
|
63
|
-
z-index: 1500;
|
|
64
|
-
|
|
65
|
-
opacity: 0;
|
|
66
|
-
|
|
67
|
-
&[open] {
|
|
68
|
-
transform: translateY(0);
|
|
69
|
-
opacity: 1;
|
|
70
|
-
|
|
71
|
-
@starting-style {
|
|
72
|
-
transform: translateY(100%);
|
|
73
|
-
opacity: 0;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
@media (width >= 768px) {
|
|
79
|
-
inset-block-start: 50%;
|
|
80
|
-
inset-inline-start: 50%;
|
|
81
|
-
translate: -50% -50%;
|
|
82
|
-
scale: 1 0;
|
|
83
|
-
opacity: 0;
|
|
84
|
-
|
|
85
|
-
border-radius: 0.25rem;
|
|
86
|
-
|
|
87
|
-
height: clamp(300px, 80vh, 500px);
|
|
88
|
-
min-width: 320px;
|
|
89
|
-
width: var(--default-width, 400px);
|
|
90
|
-
|
|
91
|
-
&[open] {
|
|
92
|
-
scale: 1;
|
|
93
|
-
opacity: 1;
|
|
94
|
-
|
|
95
|
-
@starting-style {
|
|
96
|
-
scale: 1 0;
|
|
97
|
-
opacity: 0;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
@supports (inset-block-start: anchor(bottom)) {
|
|
103
|
-
@media (width < 768px) or (pointer: coarse) {
|
|
104
|
-
anchor-name: unset !important;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
@media screen and (width >= 768px) and (pointer: fine) {
|
|
108
|
-
inset-block-start: anchor(bottom);
|
|
109
|
-
inset-block-end: unset;
|
|
110
|
-
|
|
111
|
-
inset-inline-start: anchor(left);
|
|
112
|
-
inset-inline-end: unset;
|
|
113
|
-
|
|
114
|
-
translate: unset;
|
|
115
|
-
transform-origin: top left;
|
|
116
|
-
|
|
117
|
-
resize: both;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
&[data-anchor="manual"] {
|
|
122
|
-
inset: unset;
|
|
123
|
-
position: fixed;
|
|
124
|
-
inset-inline-start: var(--lookup-anchor-inline-start, 50%);
|
|
125
|
-
inset-block-start: var(--lookup-anchor-block-start, 50%);
|
|
126
|
-
translate: unset;
|
|
127
|
-
transform: none;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
1
|
+
.ObLookup-inputWrap {
|
|
2
|
+
position: relative;
|
|
3
|
+
|
|
4
|
+
.ds-input {
|
|
5
|
+
padding-inline-end: var(--ObLookup-buttons-width, 3rem);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.ObLookup-labelTag {
|
|
10
|
+
margin-inline-start: var(--ds-size-2, 0.5rem);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.ObLookup-buttons {
|
|
14
|
+
position: absolute;
|
|
15
|
+
inset-inline-end: 0;
|
|
16
|
+
inset-block-end: 0;
|
|
17
|
+
/* Match the .ds-input height so the buttons center on the input row,
|
|
18
|
+
also when a label or description is rendered above the input */
|
|
19
|
+
height: var(--ds-size-12, 3rem);
|
|
20
|
+
display: flex;
|
|
21
|
+
align-items: center;
|
|
22
|
+
padding-inline-end: var(--ds-size-1, 0.25rem);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.ObLookup-dialog {
|
|
26
|
+
border: 0;
|
|
27
|
+
margin-block-start: 0;
|
|
28
|
+
padding: 1rem;
|
|
29
|
+
overflow: hidden;
|
|
30
|
+
|
|
31
|
+
background-color: whitesmoke;
|
|
32
|
+
|
|
33
|
+
transition:
|
|
34
|
+
display 0.2s allow-discrete,
|
|
35
|
+
transform 0.2s ease-out,
|
|
36
|
+
scale 0.2s ease-out,
|
|
37
|
+
opacity 0.2s ease-out;
|
|
38
|
+
|
|
39
|
+
&::backdrop {
|
|
40
|
+
opacity: 0;
|
|
41
|
+
background: rgb(0 0 0 / 0.2);
|
|
42
|
+
transition:
|
|
43
|
+
display 0.2s allow-discrete,
|
|
44
|
+
opacity 0.2s ease-out;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&[open]::backdrop {
|
|
48
|
+
opacity: 1;
|
|
49
|
+
|
|
50
|
+
@starting-style {
|
|
51
|
+
opacity: 0;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@media (width < 768px) {
|
|
56
|
+
inset: 10vh 0.5rem 0;
|
|
57
|
+
|
|
58
|
+
border-radius: 1rem 1rem 0 0;
|
|
59
|
+
height: 90vh;
|
|
60
|
+
width: calc(100vw - 1rem);
|
|
61
|
+
max-width: 100vw;
|
|
62
|
+
transform: translateY(100%);
|
|
63
|
+
z-index: 1500;
|
|
64
|
+
|
|
65
|
+
opacity: 0;
|
|
66
|
+
|
|
67
|
+
&[open] {
|
|
68
|
+
transform: translateY(0);
|
|
69
|
+
opacity: 1;
|
|
70
|
+
|
|
71
|
+
@starting-style {
|
|
72
|
+
transform: translateY(100%);
|
|
73
|
+
opacity: 0;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@media (width >= 768px) {
|
|
79
|
+
inset-block-start: 50%;
|
|
80
|
+
inset-inline-start: 50%;
|
|
81
|
+
translate: -50% -50%;
|
|
82
|
+
scale: 1 0;
|
|
83
|
+
opacity: 0;
|
|
84
|
+
|
|
85
|
+
border-radius: 0.25rem;
|
|
86
|
+
|
|
87
|
+
height: clamp(300px, 80vh, 500px);
|
|
88
|
+
min-width: 320px;
|
|
89
|
+
width: var(--default-width, 400px);
|
|
90
|
+
|
|
91
|
+
&[open] {
|
|
92
|
+
scale: 1;
|
|
93
|
+
opacity: 1;
|
|
94
|
+
|
|
95
|
+
@starting-style {
|
|
96
|
+
scale: 1 0;
|
|
97
|
+
opacity: 0;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@supports (inset-block-start: anchor(bottom)) {
|
|
103
|
+
@media (width < 768px) or (pointer: coarse) {
|
|
104
|
+
anchor-name: unset !important;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
@media screen and (width >= 768px) and (pointer: fine) {
|
|
108
|
+
inset-block-start: anchor(bottom);
|
|
109
|
+
inset-block-end: unset;
|
|
110
|
+
|
|
111
|
+
inset-inline-start: anchor(left);
|
|
112
|
+
inset-inline-end: unset;
|
|
113
|
+
|
|
114
|
+
translate: unset;
|
|
115
|
+
transform-origin: top left;
|
|
116
|
+
|
|
117
|
+
resize: both;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
&[data-anchor="manual"] {
|
|
122
|
+
inset: unset;
|
|
123
|
+
position: fixed;
|
|
124
|
+
inset-inline-start: var(--lookup-anchor-inline-start, 50%);
|
|
125
|
+
inset-block-start: var(--lookup-anchor-block-start, 50%);
|
|
126
|
+
translate: unset;
|
|
127
|
+
transform: none;
|
|
128
|
+
}
|
|
129
|
+
}
|