origam 2.24.0 → 2.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/dist/src/assets/css/main.css +1 -1
- package/dist/src/assets/css/tokens/dark.css +2 -16
- package/dist/src/assets/css/tokens/light.css +1 -8
- package/dist/src/assets/scss/tokens/_dark.scss +2 -16
- package/dist/src/assets/scss/tokens/_light.scss +1 -8
- package/dist/src/components/Btn/OrigamBtn.vue +89 -124
- package/dist/src/components/Card/OrigamCard.vue +80 -13
- package/dist/src/components/DataTable/OrigamDataTable.vue +26 -1
- package/dist/src/components/DataTable/OrigamDataTableRows.vue +58 -12
- package/dist/src/components/ExpansionPanel/OrigamExpansionPanel.vue +4 -2
- package/dist/src/components/ExpansionPanel/OrigamExpansionPanelContent.vue +12 -3
- package/dist/src/components/Field/OrigamField.vue +120 -152
- package/dist/src/components/Skeleton/OrigamSkeleton.vue +2 -7
- package/dist/src/components/Switch/OrigamSwitch.vue +1 -69
- package/dist/src/enums/DataTable/data-table.enum.cjs +8 -2
- package/dist/src/enums/DataTable/data-table.enum.d.ts +16 -0
- package/dist/src/enums/DataTable/data-table.enum.js +6 -0
- package/dist/src/interfaces/Btn/btn.interface.d.ts +3 -3
- package/dist/src/interfaces/Commons/loader.interface.d.ts +13 -1
- package/dist/src/interfaces/Field/field.interface.d.ts +2 -2
- package/dist/src/interfaces/Skeleton/skeleton.interface.d.ts +13 -0
- package/dist/src/interfaces/Switch/switch.interface.d.ts +2 -2
- package/dist/src/types/Commons/loader.type.d.ts +24 -0
- package/dist/src/types/tokens.type.d.ts +1 -1
- package/dist/src/utils/DataTable/skeleton-cell.util.cjs +13 -0
- package/dist/src/utils/DataTable/skeleton-cell.util.d.ts +12 -0
- package/dist/src/utils/DataTable/skeleton-cell.util.js +7 -0
- package/dist/src/utils/Skeleton/skeleton.util.cjs +30 -0
- package/dist/src/utils/Skeleton/skeleton.util.d.ts +33 -0
- package/dist/src/utils/Skeleton/skeleton.util.js +23 -0
- package/dist/src/utils/index.cjs +22 -0
- package/dist/src/utils/index.d.ts +2 -0
- package/dist/src/utils/index.js +2 -0
- package/package.json +1 -1
|
@@ -331,8 +331,6 @@
|
|
|
331
331
|
--origam-btn---overlay-opacity-hover: var(--origam-opacity---12);
|
|
332
332
|
--origam-btn---overlay-opacity-active: 0.2;
|
|
333
333
|
--origam-btn---overlay-opacity-active-hover: 0.28;
|
|
334
|
-
--origam-btn--loader-skeleton---min-width: 96px;
|
|
335
|
-
--origam-btn--loader-skeleton---min-height: 36px;
|
|
336
334
|
--origam-btn__progress---linear-height: 3px;
|
|
337
335
|
--origam-btn__progress---linear-position: 0px;
|
|
338
336
|
--origam-btn__progress---linear-position-top: auto;
|
|
@@ -429,7 +427,7 @@
|
|
|
429
427
|
--origam-card--loading---min-height: 120px;
|
|
430
428
|
--origam-card__asset---aspect-ratio: 16 / 9;
|
|
431
429
|
--origam-card__loader---min-height: 4px;
|
|
432
|
-
--origam-
|
|
430
|
+
--origam-card__skeleton---padding: var(--origam-space---4);
|
|
433
431
|
--origam-card__loader---z-index: 3;
|
|
434
432
|
--origam-card__progress---linear-height: 4px;
|
|
435
433
|
--origam-card__progress---circular-margin: 24px auto;
|
|
@@ -1818,7 +1816,6 @@
|
|
|
1818
1816
|
--origam-data-table-rows--no-data---text-align: center;
|
|
1819
1817
|
--origam-data-table-rows--no-data---color: var(--origam-color__text---secondary);
|
|
1820
1818
|
--origam-data-table-rows--loading---color: var(--origam-color__text---secondary);
|
|
1821
|
-
--origam-data-table-rows--skeleton---cell-padding: 4px 8px;
|
|
1822
1819
|
--origam-data-table-header-cell--sortable---cursor: pointer;
|
|
1823
1820
|
--origam-data-table__sortable---icon-color: var(--origam-color__text---primary);
|
|
1824
1821
|
--origam-data-table__sortable---icon-color-active: var(--origam-color__text---primary);
|
|
@@ -2303,10 +2300,6 @@
|
|
|
2303
2300
|
--origam-switch__thumb---border-color: rgba(0, 0, 0, 0.18);
|
|
2304
2301
|
--origam-switch__thumb---color: currentColor;
|
|
2305
2302
|
--origam-switch__selection-control---min-height: 56px;
|
|
2306
|
-
--origam-switch__skeleton---width: 52px;
|
|
2307
|
-
--origam-switch__skeleton---height: 32px;
|
|
2308
|
-
--origam-switch__skeleton-track---background-color: color-mix(in srgb, currentColor 14%, transparent);
|
|
2309
|
-
--origam-switch__skeleton-thumb---background-color: color-mix(in srgb, currentColor 28%, transparent);
|
|
2310
2303
|
--origam-switch__track--inset---height: 32px;
|
|
2311
2304
|
--origam-switch__track--inset---width: 52px;
|
|
2312
2305
|
--origam-switch---opacity-disabled: var(--origam-opacity---32);
|
|
@@ -3351,8 +3344,6 @@
|
|
|
3351
3344
|
--origam-btn---overlay-opacity-hover: var(--origam-opacity---12);
|
|
3352
3345
|
--origam-btn---overlay-opacity-active: 0.2;
|
|
3353
3346
|
--origam-btn---overlay-opacity-active-hover: 0.28;
|
|
3354
|
-
--origam-btn--loader-skeleton---min-width: 96px;
|
|
3355
|
-
--origam-btn--loader-skeleton---min-height: 36px;
|
|
3356
3347
|
--origam-btn__progress---linear-height: 3px;
|
|
3357
3348
|
--origam-btn__progress---linear-position: 0px;
|
|
3358
3349
|
--origam-btn__progress---linear-position-top: auto;
|
|
@@ -3449,7 +3440,7 @@
|
|
|
3449
3440
|
--origam-card--loading---min-height: 120px;
|
|
3450
3441
|
--origam-card__asset---aspect-ratio: 16 / 9;
|
|
3451
3442
|
--origam-card__loader---min-height: 4px;
|
|
3452
|
-
--origam-
|
|
3443
|
+
--origam-card__skeleton---padding: var(--origam-space---4);
|
|
3453
3444
|
--origam-card__loader---z-index: 3;
|
|
3454
3445
|
--origam-card__progress---linear-height: 4px;
|
|
3455
3446
|
--origam-card__progress---circular-margin: 24px auto;
|
|
@@ -4838,7 +4829,6 @@
|
|
|
4838
4829
|
--origam-data-table-rows--no-data---text-align: center;
|
|
4839
4830
|
--origam-data-table-rows--no-data---color: var(--origam-color__text---secondary);
|
|
4840
4831
|
--origam-data-table-rows--loading---color: var(--origam-color__text---secondary);
|
|
4841
|
-
--origam-data-table-rows--skeleton---cell-padding: 4px 8px;
|
|
4842
4832
|
--origam-data-table-header-cell--sortable---cursor: pointer;
|
|
4843
4833
|
--origam-data-table__sortable---icon-color: var(--origam-color__text---primary);
|
|
4844
4834
|
--origam-data-table__sortable---icon-color-active: var(--origam-color__text---primary);
|
|
@@ -5322,10 +5312,6 @@
|
|
|
5322
5312
|
--origam-switch__thumb---border-color: rgba(0, 0, 0, 0.18);
|
|
5323
5313
|
--origam-switch__thumb---color: currentColor;
|
|
5324
5314
|
--origam-switch__selection-control---min-height: 56px;
|
|
5325
|
-
--origam-switch__skeleton---width: 52px;
|
|
5326
|
-
--origam-switch__skeleton---height: 32px;
|
|
5327
|
-
--origam-switch__skeleton-track---background-color: color-mix(in srgb, currentColor 14%, transparent);
|
|
5328
|
-
--origam-switch__skeleton-thumb---background-color: color-mix(in srgb, currentColor 28%, transparent);
|
|
5329
5315
|
--origam-switch__track--inset---height: 32px;
|
|
5330
5316
|
--origam-switch__track--inset---width: 52px;
|
|
5331
5317
|
--origam-switch---opacity-disabled: var(--origam-opacity---32);
|
|
@@ -231,8 +231,6 @@
|
|
|
231
231
|
--origam-btn---overlay-opacity-hover: var(--origam-opacity---12);
|
|
232
232
|
--origam-btn---overlay-opacity-active: 0.2;
|
|
233
233
|
--origam-btn---overlay-opacity-active-hover: 0.28;
|
|
234
|
-
--origam-btn--loader-skeleton---min-width: 96px;
|
|
235
|
-
--origam-btn--loader-skeleton---min-height: 36px;
|
|
236
234
|
--origam-btn__progress---linear-height: 3px;
|
|
237
235
|
--origam-btn__progress---linear-position: 0px;
|
|
238
236
|
--origam-btn__progress---linear-position-top: auto;
|
|
@@ -329,7 +327,7 @@
|
|
|
329
327
|
--origam-card--loading---min-height: 120px;
|
|
330
328
|
--origam-card__asset---aspect-ratio: 16 / 9;
|
|
331
329
|
--origam-card__loader---min-height: 4px;
|
|
332
|
-
--origam-
|
|
330
|
+
--origam-card__skeleton---padding: var(--origam-space---4);
|
|
333
331
|
--origam-card__loader---z-index: 3;
|
|
334
332
|
--origam-card__progress---linear-height: 4px;
|
|
335
333
|
--origam-card__progress---circular-margin: 24px auto;
|
|
@@ -1720,7 +1718,6 @@
|
|
|
1720
1718
|
--origam-data-table-rows--no-data---text-align: center;
|
|
1721
1719
|
--origam-data-table-rows--no-data---color: var(--origam-color__text---secondary);
|
|
1722
1720
|
--origam-data-table-rows--loading---color: var(--origam-color__text---secondary);
|
|
1723
|
-
--origam-data-table-rows--skeleton---cell-padding: 4px 8px;
|
|
1724
1721
|
--origam-data-table-header-cell--sortable---cursor: pointer;
|
|
1725
1722
|
--origam-data-table__sortable---icon-color: var(--origam-color__text---primary);
|
|
1726
1723
|
--origam-data-table__sortable---icon-color-active: var(--origam-color__text---primary);
|
|
@@ -2217,10 +2214,6 @@
|
|
|
2217
2214
|
--origam-switch__thumb---border-color: rgba(0, 0, 0, 0.18);
|
|
2218
2215
|
--origam-switch__thumb---color: currentColor;
|
|
2219
2216
|
--origam-switch__selection-control---min-height: 56px;
|
|
2220
|
-
--origam-switch__skeleton---width: 52px;
|
|
2221
|
-
--origam-switch__skeleton---height: 32px;
|
|
2222
|
-
--origam-switch__skeleton-track---background-color: color-mix(in srgb, currentColor 14%, transparent);
|
|
2223
|
-
--origam-switch__skeleton-thumb---background-color: color-mix(in srgb, currentColor 28%, transparent);
|
|
2224
2217
|
--origam-switch__track--inset---height: 32px;
|
|
2225
2218
|
--origam-switch__track--inset---width: 52px;
|
|
2226
2219
|
--origam-switch---opacity-disabled: var(--origam-opacity---32);
|
|
@@ -331,8 +331,6 @@
|
|
|
331
331
|
--origam-btn---overlay-opacity-hover: var(--origam-opacity---12);
|
|
332
332
|
--origam-btn---overlay-opacity-active: 0.2;
|
|
333
333
|
--origam-btn---overlay-opacity-active-hover: 0.28;
|
|
334
|
-
--origam-btn--loader-skeleton---min-width: 96px;
|
|
335
|
-
--origam-btn--loader-skeleton---min-height: 36px;
|
|
336
334
|
--origam-btn__progress---linear-height: 3px;
|
|
337
335
|
--origam-btn__progress---linear-position: 0px;
|
|
338
336
|
--origam-btn__progress---linear-position-top: auto;
|
|
@@ -429,7 +427,7 @@
|
|
|
429
427
|
--origam-card--loading---min-height: 120px;
|
|
430
428
|
--origam-card__asset---aspect-ratio: 16 / 9;
|
|
431
429
|
--origam-card__loader---min-height: 4px;
|
|
432
|
-
--origam-
|
|
430
|
+
--origam-card__skeleton---padding: var(--origam-space---4);
|
|
433
431
|
--origam-card__loader---z-index: 3;
|
|
434
432
|
--origam-card__progress---linear-height: 4px;
|
|
435
433
|
--origam-card__progress---circular-margin: 24px auto;
|
|
@@ -1818,7 +1816,6 @@
|
|
|
1818
1816
|
--origam-data-table-rows--no-data---text-align: center;
|
|
1819
1817
|
--origam-data-table-rows--no-data---color: var(--origam-color__text---secondary);
|
|
1820
1818
|
--origam-data-table-rows--loading---color: var(--origam-color__text---secondary);
|
|
1821
|
-
--origam-data-table-rows--skeleton---cell-padding: 4px 8px;
|
|
1822
1819
|
--origam-data-table-header-cell--sortable---cursor: pointer;
|
|
1823
1820
|
--origam-data-table__sortable---icon-color: var(--origam-color__text---primary);
|
|
1824
1821
|
--origam-data-table__sortable---icon-color-active: var(--origam-color__text---primary);
|
|
@@ -2303,10 +2300,6 @@
|
|
|
2303
2300
|
--origam-switch__thumb---border-color: rgba(0, 0, 0, 0.18);
|
|
2304
2301
|
--origam-switch__thumb---color: currentColor;
|
|
2305
2302
|
--origam-switch__selection-control---min-height: 56px;
|
|
2306
|
-
--origam-switch__skeleton---width: 52px;
|
|
2307
|
-
--origam-switch__skeleton---height: 32px;
|
|
2308
|
-
--origam-switch__skeleton-track---background-color: color-mix(in srgb, currentColor 14%, transparent);
|
|
2309
|
-
--origam-switch__skeleton-thumb---background-color: color-mix(in srgb, currentColor 28%, transparent);
|
|
2310
2303
|
--origam-switch__track--inset---height: 32px;
|
|
2311
2304
|
--origam-switch__track--inset---width: 52px;
|
|
2312
2305
|
--origam-switch---opacity-disabled: var(--origam-opacity---32);
|
|
@@ -3351,8 +3344,6 @@
|
|
|
3351
3344
|
--origam-btn---overlay-opacity-hover: var(--origam-opacity---12);
|
|
3352
3345
|
--origam-btn---overlay-opacity-active: 0.2;
|
|
3353
3346
|
--origam-btn---overlay-opacity-active-hover: 0.28;
|
|
3354
|
-
--origam-btn--loader-skeleton---min-width: 96px;
|
|
3355
|
-
--origam-btn--loader-skeleton---min-height: 36px;
|
|
3356
3347
|
--origam-btn__progress---linear-height: 3px;
|
|
3357
3348
|
--origam-btn__progress---linear-position: 0px;
|
|
3358
3349
|
--origam-btn__progress---linear-position-top: auto;
|
|
@@ -3449,7 +3440,7 @@
|
|
|
3449
3440
|
--origam-card--loading---min-height: 120px;
|
|
3450
3441
|
--origam-card__asset---aspect-ratio: 16 / 9;
|
|
3451
3442
|
--origam-card__loader---min-height: 4px;
|
|
3452
|
-
--origam-
|
|
3443
|
+
--origam-card__skeleton---padding: var(--origam-space---4);
|
|
3453
3444
|
--origam-card__loader---z-index: 3;
|
|
3454
3445
|
--origam-card__progress---linear-height: 4px;
|
|
3455
3446
|
--origam-card__progress---circular-margin: 24px auto;
|
|
@@ -4838,7 +4829,6 @@
|
|
|
4838
4829
|
--origam-data-table-rows--no-data---text-align: center;
|
|
4839
4830
|
--origam-data-table-rows--no-data---color: var(--origam-color__text---secondary);
|
|
4840
4831
|
--origam-data-table-rows--loading---color: var(--origam-color__text---secondary);
|
|
4841
|
-
--origam-data-table-rows--skeleton---cell-padding: 4px 8px;
|
|
4842
4832
|
--origam-data-table-header-cell--sortable---cursor: pointer;
|
|
4843
4833
|
--origam-data-table__sortable---icon-color: var(--origam-color__text---primary);
|
|
4844
4834
|
--origam-data-table__sortable---icon-color-active: var(--origam-color__text---primary);
|
|
@@ -5322,10 +5312,6 @@
|
|
|
5322
5312
|
--origam-switch__thumb---border-color: rgba(0, 0, 0, 0.18);
|
|
5323
5313
|
--origam-switch__thumb---color: currentColor;
|
|
5324
5314
|
--origam-switch__selection-control---min-height: 56px;
|
|
5325
|
-
--origam-switch__skeleton---width: 52px;
|
|
5326
|
-
--origam-switch__skeleton---height: 32px;
|
|
5327
|
-
--origam-switch__skeleton-track---background-color: color-mix(in srgb, currentColor 14%, transparent);
|
|
5328
|
-
--origam-switch__skeleton-thumb---background-color: color-mix(in srgb, currentColor 28%, transparent);
|
|
5329
5315
|
--origam-switch__track--inset---height: 32px;
|
|
5330
5316
|
--origam-switch__track--inset---width: 52px;
|
|
5331
5317
|
--origam-switch---opacity-disabled: var(--origam-opacity---32);
|
|
@@ -231,8 +231,6 @@
|
|
|
231
231
|
--origam-btn---overlay-opacity-hover: var(--origam-opacity---12);
|
|
232
232
|
--origam-btn---overlay-opacity-active: 0.2;
|
|
233
233
|
--origam-btn---overlay-opacity-active-hover: 0.28;
|
|
234
|
-
--origam-btn--loader-skeleton---min-width: 96px;
|
|
235
|
-
--origam-btn--loader-skeleton---min-height: 36px;
|
|
236
234
|
--origam-btn__progress---linear-height: 3px;
|
|
237
235
|
--origam-btn__progress---linear-position: 0px;
|
|
238
236
|
--origam-btn__progress---linear-position-top: auto;
|
|
@@ -329,7 +327,7 @@
|
|
|
329
327
|
--origam-card--loading---min-height: 120px;
|
|
330
328
|
--origam-card__asset---aspect-ratio: 16 / 9;
|
|
331
329
|
--origam-card__loader---min-height: 4px;
|
|
332
|
-
--origam-
|
|
330
|
+
--origam-card__skeleton---padding: var(--origam-space---4);
|
|
333
331
|
--origam-card__loader---z-index: 3;
|
|
334
332
|
--origam-card__progress---linear-height: 4px;
|
|
335
333
|
--origam-card__progress---circular-margin: 24px auto;
|
|
@@ -1720,7 +1718,6 @@
|
|
|
1720
1718
|
--origam-data-table-rows--no-data---text-align: center;
|
|
1721
1719
|
--origam-data-table-rows--no-data---color: var(--origam-color__text---secondary);
|
|
1722
1720
|
--origam-data-table-rows--loading---color: var(--origam-color__text---secondary);
|
|
1723
|
-
--origam-data-table-rows--skeleton---cell-padding: 4px 8px;
|
|
1724
1721
|
--origam-data-table-header-cell--sortable---cursor: pointer;
|
|
1725
1722
|
--origam-data-table__sortable---icon-color: var(--origam-color__text---primary);
|
|
1726
1723
|
--origam-data-table__sortable---icon-color-active: var(--origam-color__text---primary);
|
|
@@ -2217,10 +2214,6 @@
|
|
|
2217
2214
|
--origam-switch__thumb---border-color: rgba(0, 0, 0, 0.18);
|
|
2218
2215
|
--origam-switch__thumb---color: currentColor;
|
|
2219
2216
|
--origam-switch__selection-control---min-height: 56px;
|
|
2220
|
-
--origam-switch__skeleton---width: 52px;
|
|
2221
|
-
--origam-switch__skeleton---height: 32px;
|
|
2222
|
-
--origam-switch__skeleton-track---background-color: color-mix(in srgb, currentColor 14%, transparent);
|
|
2223
|
-
--origam-switch__skeleton-thumb---background-color: color-mix(in srgb, currentColor 28%, transparent);
|
|
2224
2217
|
--origam-switch__track--inset---height: 32px;
|
|
2225
2218
|
--origam-switch__track--inset---width: 52px;
|
|
2226
2219
|
--origam-switch---opacity-disabled: var(--origam-opacity---32);
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
:href="hrefAttr"
|
|
13
13
|
:type="typeAttr"
|
|
14
14
|
:value="valueAttr"
|
|
15
|
+
@click.capture="handleClickCapture"
|
|
15
16
|
@click="handleClick"
|
|
16
17
|
@mouseenter="handleMouseenter"
|
|
17
18
|
@mouseleave="handleMouseleave"
|
|
@@ -25,99 +26,84 @@
|
|
|
25
26
|
class="origam-btn__underlay"
|
|
26
27
|
/>
|
|
27
28
|
|
|
28
|
-
<
|
|
29
|
+
<slot
|
|
29
30
|
v-if="isOverlayLoading"
|
|
30
|
-
|
|
31
|
-
class="origam-btn__progress"
|
|
31
|
+
name="loader"
|
|
32
32
|
v-bind="progressProps"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
>
|
|
34
|
+
<origam-progress
|
|
35
|
+
ref="origamProgressRef"
|
|
36
|
+
class="origam-btn__progress"
|
|
37
|
+
v-bind="progressProps"
|
|
38
|
+
tag="span"
|
|
39
|
+
aria-hidden="true"
|
|
40
|
+
:thickness="loaderKind === 'line' ? 3 : undefined"
|
|
41
|
+
:color="color"
|
|
42
|
+
:active="true"
|
|
43
|
+
/>
|
|
44
|
+
</slot>
|
|
37
45
|
|
|
38
46
|
<slot name="wrapper">
|
|
39
|
-
<origam-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
<span class="origam-btn__loader">
|
|
48
|
+
<span
|
|
49
|
+
v-if="hasPrepend"
|
|
50
|
+
key="prepend"
|
|
51
|
+
class="origam-btn__prepend"
|
|
52
|
+
>
|
|
53
|
+
<slot name="prepend">
|
|
54
|
+
<origam-avatar
|
|
55
|
+
v-if="prependAvatar"
|
|
56
|
+
key="prepend-avatar"
|
|
57
|
+
:density="density"
|
|
58
|
+
:image="prependAvatar"
|
|
59
|
+
/>
|
|
60
|
+
<origam-icon
|
|
61
|
+
v-if="prependIcon"
|
|
62
|
+
key="prepend-icon"
|
|
63
|
+
:density="density"
|
|
64
|
+
:icon="prependIcon"
|
|
65
|
+
/>
|
|
66
|
+
</slot>
|
|
67
|
+
</span>
|
|
68
|
+
|
|
69
|
+
<span
|
|
70
|
+
class="origam-btn__content"
|
|
71
|
+
data-no-activator=""
|
|
72
|
+
>
|
|
73
|
+
<slot name="default">
|
|
74
|
+
<template v-if="hasIcon">
|
|
75
|
+
<origam-icon
|
|
76
|
+
key="content-icon"
|
|
77
|
+
:icon="icon"
|
|
78
|
+
/>
|
|
79
|
+
</template>
|
|
80
|
+
<template v-else>
|
|
81
|
+
{{ text }}
|
|
82
|
+
</template>
|
|
83
|
+
</slot>
|
|
84
|
+
</span>
|
|
85
|
+
|
|
86
|
+
<span
|
|
87
|
+
v-if="hasAppend"
|
|
88
|
+
key="append"
|
|
89
|
+
class="origam-btn__append"
|
|
46
90
|
>
|
|
47
|
-
<slot
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
v-
|
|
91
|
+
<slot name="append">
|
|
92
|
+
<origam-avatar
|
|
93
|
+
v-if="appendAvatar"
|
|
94
|
+
key="append-avatar"
|
|
95
|
+
:density="density"
|
|
96
|
+
:image="appendAvatar"
|
|
97
|
+
/>
|
|
98
|
+
<origam-icon
|
|
99
|
+
v-if="appendIcon"
|
|
100
|
+
key="append-icon"
|
|
101
|
+
:density="density"
|
|
102
|
+
:icon="appendIcon"
|
|
56
103
|
/>
|
|
57
104
|
</slot>
|
|
58
|
-
</
|
|
59
|
-
|
|
60
|
-
<template #default>
|
|
61
|
-
<span
|
|
62
|
-
v-if="hasPrepend"
|
|
63
|
-
key="prepend"
|
|
64
|
-
class="origam-btn__prepend"
|
|
65
|
-
>
|
|
66
|
-
<slot name="prepend">
|
|
67
|
-
<origam-avatar
|
|
68
|
-
v-if="prependAvatar"
|
|
69
|
-
key="prepend-avatar"
|
|
70
|
-
:density="density"
|
|
71
|
-
:image="prependAvatar"
|
|
72
|
-
/>
|
|
73
|
-
<origam-icon
|
|
74
|
-
v-if="prependIcon"
|
|
75
|
-
key="prepend-icon"
|
|
76
|
-
:density="density"
|
|
77
|
-
:icon="prependIcon"
|
|
78
|
-
/>
|
|
79
|
-
</slot>
|
|
80
|
-
</span>
|
|
81
|
-
|
|
82
|
-
<span
|
|
83
|
-
class="origam-btn__content"
|
|
84
|
-
data-no-activator=""
|
|
85
|
-
>
|
|
86
|
-
<slot name="default">
|
|
87
|
-
<template v-if="hasIcon">
|
|
88
|
-
<origam-icon
|
|
89
|
-
key="content-icon"
|
|
90
|
-
:icon="icon"
|
|
91
|
-
/>
|
|
92
|
-
</template>
|
|
93
|
-
<template v-else>
|
|
94
|
-
{{ text }}
|
|
95
|
-
</template>
|
|
96
|
-
</slot>
|
|
97
|
-
</span>
|
|
98
|
-
|
|
99
|
-
<span
|
|
100
|
-
v-if="hasAppend"
|
|
101
|
-
key="append"
|
|
102
|
-
class="origam-btn__append"
|
|
103
|
-
>
|
|
104
|
-
<slot name="append">
|
|
105
|
-
<origam-avatar
|
|
106
|
-
v-if="appendAvatar"
|
|
107
|
-
key="append-avatar"
|
|
108
|
-
:density="density"
|
|
109
|
-
:image="appendAvatar"
|
|
110
|
-
/>
|
|
111
|
-
<origam-icon
|
|
112
|
-
v-if="appendIcon"
|
|
113
|
-
key="append-icon"
|
|
114
|
-
:density="density"
|
|
115
|
-
:icon="appendIcon"
|
|
116
|
-
/>
|
|
117
|
-
</slot>
|
|
118
|
-
</span>
|
|
119
|
-
</template>
|
|
120
|
-
</origam-loader>
|
|
105
|
+
</span>
|
|
106
|
+
</span>
|
|
121
107
|
</slot>
|
|
122
108
|
</component>
|
|
123
109
|
</template>
|
|
@@ -126,9 +112,7 @@
|
|
|
126
112
|
import { computed, ref, StyleValue, toRef, useAttrs, useSlots, watchEffect } from "vue";
|
|
127
113
|
import OrigamAvatar from "../Avatar/OrigamAvatar.vue";
|
|
128
114
|
import OrigamIcon from "../Icon/OrigamIcon.vue";
|
|
129
|
-
import OrigamLoader from "../Loader/OrigamLoader.vue";
|
|
130
115
|
import OrigamProgress from "../Progress/OrigamProgress.vue";
|
|
131
|
-
import OrigamSkeleton from "../Skeleton/OrigamSkeleton.vue";
|
|
132
116
|
import { useAdjacent } from "../../composables/Commons/adjacent.composable";
|
|
133
117
|
import { useDensity } from "../../composables/Commons/density.composable";
|
|
134
118
|
import { useDimension } from "../../composables/Commons/dimension.composable";
|
|
@@ -290,7 +274,7 @@ const isActive = computed(() => {
|
|
|
290
274
|
});
|
|
291
275
|
const isDisabled = computed(() => group?.disabled.value || props.disabled);
|
|
292
276
|
const isAnchor = computed(() => link.tag.value === "a");
|
|
293
|
-
const ariaDisabled = computed(() => isAnchor.value && isDisabled.value ? "true" : void 0);
|
|
277
|
+
const ariaDisabled = computed(() => isAnchor.value && isDisabled.value || isLoading.value ? "true" : void 0);
|
|
294
278
|
const hrefAttr = computed(() => isAnchor.value && isDisabled.value ? void 0 : link.href.value);
|
|
295
279
|
const typeAttr = computed(() => isAnchor.value ? void 0 : "button");
|
|
296
280
|
const valueAttr = computed(() => {
|
|
@@ -306,7 +290,7 @@ const isRipple = computed(() => {
|
|
|
306
290
|
});
|
|
307
291
|
const { densityClasses } = useDensity(props);
|
|
308
292
|
const { dimensionStyles } = useDimension(props);
|
|
309
|
-
const { loaderClasses, loaderConfig } = useLoader(props, LOADER_KIND.CIRCULAR);
|
|
293
|
+
const { loaderClasses, isLoading, loaderConfig } = useLoader(props, LOADER_KIND.CIRCULAR);
|
|
310
294
|
const { locationStyles } = useLocation(props);
|
|
311
295
|
const { positionClasses } = usePosition(props);
|
|
312
296
|
const { sizeClasses, sizeStyles } = useSize(props);
|
|
@@ -331,6 +315,11 @@ const {
|
|
|
331
315
|
hasAppend,
|
|
332
316
|
hasPrepend
|
|
333
317
|
} = useAdjacent(props, prependIcon, appendIcon);
|
|
318
|
+
const handleClickCapture = (e) => {
|
|
319
|
+
if (!isLoading.value) return;
|
|
320
|
+
e.preventDefault();
|
|
321
|
+
e.stopImmediatePropagation();
|
|
322
|
+
};
|
|
334
323
|
const handleClick = (e) => {
|
|
335
324
|
if (isDisabled.value || link.isLink.value && (e.metaKey || e.ctrlKey || e.shiftKey || e.button !== 0 || attrs.target === "_blank")) return;
|
|
336
325
|
link.navigate?.(e);
|
|
@@ -339,9 +328,6 @@ const handleClick = (e) => {
|
|
|
339
328
|
const hasIcon = computed(() => {
|
|
340
329
|
return !!(icon.value && props.icon !== true);
|
|
341
330
|
});
|
|
342
|
-
const hasLoader = computed(() => {
|
|
343
|
-
return slots.loader || loaderConfig.value.isActive;
|
|
344
|
-
});
|
|
345
331
|
const isUnnamedIconOnly = computed(() => {
|
|
346
332
|
if (!hasIcon.value) return false;
|
|
347
333
|
if (slots.default || props.text) return false;
|
|
@@ -357,13 +343,9 @@ if (import.meta.env?.DEV) {
|
|
|
357
343
|
}
|
|
358
344
|
});
|
|
359
345
|
}
|
|
360
|
-
const
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
const isOverlayLoading = computed(() => {
|
|
364
|
-
return loaderConfig.value.isActive && (loaderConfig.value.kind === "line" || loaderConfig.value.kind === "circular");
|
|
365
|
-
});
|
|
366
|
-
const ariaBusy = computed(() => loaderConfig.value.isActive ? "true" : void 0);
|
|
346
|
+
const isOverlayLoading = computed(() => loaderConfig.value.isActive);
|
|
347
|
+
const loaderKind = computed(() => loaderConfig.value.kind === "line" ? "line" : "circular");
|
|
348
|
+
const ariaBusy = computed(() => isLoading.value ? "true" : void 0);
|
|
367
349
|
const progressProps = computed(() => {
|
|
368
350
|
const cfg = loaderConfig.value;
|
|
369
351
|
return Object.assign(
|
|
@@ -371,7 +353,7 @@ const progressProps = computed(() => {
|
|
|
371
353
|
size: "23",
|
|
372
354
|
indeterminate: cfg.indeterminate,
|
|
373
355
|
modelValue: cfg.modelValue,
|
|
374
|
-
type:
|
|
356
|
+
type: loaderKind.value === "line" ? PROGRESS_TYPE.LINEAR : PROGRESS_TYPE.CIRCULAR
|
|
375
357
|
},
|
|
376
358
|
origamProgressRef.value?.filterProps(props, ["class", "style", "id", "tag", "size", "type"]) ?? {},
|
|
377
359
|
cfg.overrides
|
|
@@ -405,14 +387,14 @@ const btnClasses = computed(() => {
|
|
|
405
387
|
// so consumers can pick either spelling.
|
|
406
388
|
"origam-btn--flat": props.flat,
|
|
407
389
|
"origam-btn--icon": !!props.icon,
|
|
408
|
-
|
|
390
|
+
// `origam-btn--loading` comes from `loaderClasses` below: one
|
|
391
|
+
// source, emitted once.
|
|
409
392
|
// Loader-kind discriminator so SCSS can branch per kind:
|
|
410
|
-
//
|
|
393
|
+
// - `--loader-line` -> linear progress strip overlay,
|
|
411
394
|
// keeps the label visible (like OrigamCard's loader).
|
|
412
|
-
//
|
|
413
|
-
//
|
|
414
|
-
|
|
415
|
-
[`origam-btn--loader-${loaderConfig.value.kind}`]: loaderConfig.value.isActive,
|
|
395
|
+
// - `--loader-circular` -> centred spinner over the label,
|
|
396
|
+
// which stays in the DOM (width and name preserved).
|
|
397
|
+
[`origam-btn--loader-${loaderKind.value}`]: isLoading.value,
|
|
416
398
|
"origam-btn--slim": props.slim,
|
|
417
399
|
"origam-btn--stacked": props.stacked
|
|
418
400
|
},
|
|
@@ -995,23 +977,6 @@ defineExpose({
|
|
|
995
977
|
}
|
|
996
978
|
}
|
|
997
979
|
|
|
998
|
-
// Skeleton — rectangular placeholder REPLACES the btn content
|
|
999
|
-
// entirely (OrigamLoader's #loader branch). The btn collapses to
|
|
1000
|
-
// the skeleton's natural size unless we give it a sensible
|
|
1001
|
-
// min-width / min-height.
|
|
1002
|
-
&--loader-skeleton {
|
|
1003
|
-
min-width: var(--origam-btn--loader-skeleton---min-width, 96px);
|
|
1004
|
-
min-height: var(--origam-btn--loader-skeleton---min-height, 36px);
|
|
1005
|
-
|
|
1006
|
-
:deep(.origam-skeleton--rectangular) {
|
|
1007
|
-
position: absolute;
|
|
1008
|
-
inset: 0;
|
|
1009
|
-
width: 100%;
|
|
1010
|
-
height: 100%;
|
|
1011
|
-
border-radius: inherit;
|
|
1012
|
-
}
|
|
1013
|
-
}
|
|
1014
|
-
|
|
1015
980
|
&--stacked {
|
|
1016
981
|
#{$this}__loader {
|
|
1017
982
|
grid-template-areas: "prepend" "content" "append";
|
|
@@ -28,16 +28,55 @@
|
|
|
28
28
|
<slot name="wrapper">
|
|
29
29
|
<template v-if="hasLoading">
|
|
30
30
|
<slot name="loader">
|
|
31
|
-
<
|
|
31
|
+
<origam-skeleton-group
|
|
32
|
+
v-if="isSkeleton"
|
|
33
|
+
class="origam-card__skeleton"
|
|
34
|
+
v-bind="skeletonOverrides.group"
|
|
35
|
+
>
|
|
32
36
|
<origam-skeleton
|
|
33
|
-
v-if="
|
|
34
|
-
variant="
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
v-if="hasAsset"
|
|
38
|
+
variant="rectangular"
|
|
39
|
+
class="origam-card__skeleton-media"
|
|
40
|
+
v-bind="skeletonOverrides.block"
|
|
41
|
+
/>
|
|
42
|
+
<origam-skeleton
|
|
43
|
+
variant="text"
|
|
44
|
+
class="origam-card__skeleton-title"
|
|
45
|
+
v-bind="skeletonOverrides.block"
|
|
46
|
+
/>
|
|
47
|
+
<origam-skeleton
|
|
48
|
+
variant="text"
|
|
49
|
+
class="origam-card__skeleton-subtitle"
|
|
50
|
+
v-bind="skeletonOverrides.block"
|
|
38
51
|
/>
|
|
52
|
+
<origam-skeleton
|
|
53
|
+
variant="text"
|
|
54
|
+
class="origam-card__skeleton-line"
|
|
55
|
+
v-bind="skeletonOverrides.block"
|
|
56
|
+
/>
|
|
57
|
+
<origam-skeleton
|
|
58
|
+
variant="text"
|
|
59
|
+
class="origam-card__skeleton-line origam-card__skeleton-line--last"
|
|
60
|
+
v-bind="skeletonOverrides.block"
|
|
61
|
+
/>
|
|
62
|
+
<template v-if="hasFooter">
|
|
63
|
+
<origam-skeleton
|
|
64
|
+
variant="pill"
|
|
65
|
+
class="origam-card__skeleton-action"
|
|
66
|
+
v-bind="skeletonOverrides.block"
|
|
67
|
+
/>
|
|
68
|
+
<origam-skeleton
|
|
69
|
+
variant="pill"
|
|
70
|
+
class="origam-card__skeleton-action"
|
|
71
|
+
v-bind="skeletonOverrides.block"
|
|
72
|
+
/>
|
|
73
|
+
</template>
|
|
74
|
+
</origam-skeleton-group>
|
|
75
|
+
<div
|
|
76
|
+
v-else
|
|
77
|
+
class="origam-card__loader"
|
|
78
|
+
>
|
|
39
79
|
<origam-progress
|
|
40
|
-
v-else
|
|
41
80
|
:active="true"
|
|
42
81
|
:color="color"
|
|
43
82
|
:indeterminate="loaderConfig.indeterminate"
|
|
@@ -154,6 +193,7 @@ import OrigamCardText from "./OrigamCardText.vue";
|
|
|
154
193
|
import OrigamImg from "../Img/OrigamImg.vue";
|
|
155
194
|
import OrigamProgress from "../Progress/OrigamProgress.vue";
|
|
156
195
|
import OrigamSkeleton from "../Skeleton/OrigamSkeleton.vue";
|
|
196
|
+
import OrigamSkeletonGroup from "../Skeleton/OrigamSkeletonGroup.vue";
|
|
157
197
|
import { useAdjacent } from "../../composables/Commons/adjacent.composable";
|
|
158
198
|
import { useDensity } from "../../composables/Commons/density.composable";
|
|
159
199
|
import { useDimension } from "../../composables/Commons/dimension.composable";
|
|
@@ -171,6 +211,7 @@ import { DENSITY } from "../../enums/Commons/density.enum";
|
|
|
171
211
|
import { KEYBOARD_VALUES } from "../../enums/Commons/hotkey.enum";
|
|
172
212
|
import { LOADER_KIND } from "../../enums/Commons/loader.enum";
|
|
173
213
|
import { PROGRESS_TYPE } from "../../enums/Progress/progress.enum";
|
|
214
|
+
import { splitSkeletonOverrides } from "../../utils/Skeleton/skeleton.util";
|
|
174
215
|
import { computed, ref, StyleValue, toRef, useAttrs, useSlots } from "vue";
|
|
175
216
|
const props = defineProps({
|
|
176
217
|
disabled: { type: Boolean, required: false },
|
|
@@ -338,6 +379,8 @@ const handleKeydown = (event) => {
|
|
|
338
379
|
};
|
|
339
380
|
const { loaderClasses, loaderConfig } = useLoader(props, LOADER_KIND.LINE);
|
|
340
381
|
const slots = useSlots();
|
|
382
|
+
const isSkeleton = computed(() => loaderConfig.value.isActive && loaderConfig.value.kind === LOADER_KIND.SKELETON);
|
|
383
|
+
const skeletonOverrides = computed(() => splitSkeletonOverrides(loaderConfig.value.overrides, props.loadingText));
|
|
341
384
|
const hasLoading = computed(() => {
|
|
342
385
|
return slots.loader || loaderConfig.value.isActive;
|
|
343
386
|
});
|
|
@@ -567,15 +610,39 @@ defineExpose({
|
|
|
567
610
|
:deep(.origam-progress--circular) {
|
|
568
611
|
margin: var(--origam-card__progress---circular-margin, 24px auto);
|
|
569
612
|
}
|
|
613
|
+
}
|
|
570
614
|
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
615
|
+
// The silhouette is a grid of light primitives (no wrapper): two
|
|
616
|
+
// columns so the two actions sit side by side, every other part spans
|
|
617
|
+
// both. `>` keeps the selectors above the primitives' own scoped
|
|
618
|
+
// rules, whatever the order the sheets load in.
|
|
619
|
+
&__skeleton {
|
|
620
|
+
grid-template-columns: auto 1fr;
|
|
621
|
+
padding: var(--origam-card__skeleton---padding);
|
|
622
|
+
|
|
623
|
+
> * {
|
|
624
|
+
grid-column: 1 / -1;
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
> .origam-card__skeleton-media {
|
|
628
|
+
height: auto;
|
|
629
|
+
aspect-ratio: var(--origam-card__asset---aspect-ratio, 16 / 9);
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
> .origam-card__skeleton-title {
|
|
633
|
+
width: 62%;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
> .origam-card__skeleton-subtitle {
|
|
637
|
+
width: 38%;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
> .origam-card__skeleton-line--last {
|
|
641
|
+
width: 84%;
|
|
575
642
|
}
|
|
576
643
|
|
|
577
|
-
|
|
578
|
-
|
|
644
|
+
> .origam-card__skeleton-action {
|
|
645
|
+
grid-column: auto;
|
|
579
646
|
}
|
|
580
647
|
}
|
|
581
648
|
|