@sellmate/design-system 1.0.21 → 1.0.22
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/cjs/{select-keyboard-navigation-CtstKOb3.js → base-dropdown-event-BTPlZ1KF.js} +0 -38
- package/dist/cjs/component.button-C6xBMwHf.js +115 -0
- package/dist/cjs/design-system.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/sd-button-v2.cjs.entry.js +86 -0
- package/dist/cjs/sd-button-v2.config-BK45EPK_.js +203 -0
- package/dist/cjs/sd-button_21.cjs.entry.js +119 -65
- package/dist/cjs/sd-card.cjs.entry.js +1 -1
- package/dist/cjs/sd-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/sd-dropdown-button.cjs.entry.js +274 -0
- package/dist/cjs/sd-file-picker.cjs.entry.js +3 -3
- package/dist/cjs/sd-guide.cjs.entry.js +2 -2
- package/dist/cjs/sd-popover.cjs.entry.js +2 -2
- package/dist/cjs/sd-progress.cjs.entry.js +2 -2
- package/dist/cjs/sd-select-multiple-group.cjs.entry.js +3 -2
- package/dist/cjs/sd-select-multiple.cjs.entry.js +4 -3
- package/dist/cjs/sd-select-option-group.cjs.entry.js +3 -3
- package/dist/cjs/sd-toggle-button.cjs.entry.js +1 -1
- package/dist/cjs/sd-toggle.cjs.entry.js +1 -1
- package/dist/cjs/select-keyboard-navigation-s2wP37xZ.js +40 -0
- package/dist/collection/collection-manifest.json +3 -1
- package/dist/collection/components/sd-button-v2/sd-button-v2.config.js +190 -0
- package/dist/collection/components/sd-button-v2/sd-button-v2.css +120 -0
- package/dist/collection/components/sd-button-v2/sd-button-v2.js +249 -0
- package/dist/collection/components/sd-card/sd-card.js +1 -1
- package/dist/collection/components/sd-date-picker/sd-date-picker.js +1 -1
- package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +2 -2
- package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.config.js +62 -0
- package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.css +171 -0
- package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.js +384 -0
- package/dist/collection/components/sd-field/sd-field.js +3 -3
- package/dist/collection/components/sd-file-picker/sd-file-picker.js +3 -3
- package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +1 -1
- package/dist/collection/components/sd-guide/sd-guide.js +2 -2
- package/dist/collection/components/sd-icon/sd-icon.js +1 -1
- package/dist/collection/components/sd-input/sd-input.js +1 -1
- package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.js +1 -1
- package/dist/collection/components/sd-number-input/sd-number-input.js +4 -4
- package/dist/collection/components/sd-pagination/sd-pagination.js +2 -2
- package/dist/collection/components/sd-popover/sd-popover.js +2 -2
- package/dist/collection/components/sd-portal/sd-portal.js +89 -19
- package/dist/collection/components/sd-progress/sd-progress.js +2 -2
- package/dist/collection/components/sd-select/sd-select-dropdown/sd-select-dropdown.js +2 -2
- package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +1 -1
- package/dist/collection/components/sd-select/sd-select-search-input/sd-select-search-input.js +3 -3
- package/dist/collection/components/sd-select-multiple/sd-select-multiple.js +1 -1
- package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js +3 -3
- package/dist/collection/components/sd-textarea/sd-textarea.js +2 -2
- package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
- package/dist/collection/components/sd-toggle-button/sd-toggle-button.js +1 -1
- package/dist/components/{p-D0U1cMbs.js → p-B4p2JGMI.js} +1 -1
- package/dist/components/p-Bd9o9P1x.js +1 -0
- package/dist/components/{p-rn5S2icF.js → p-BsQEKShq.js} +1 -1
- package/dist/components/{p-CbQobmaB.js → p-CAJmL8nc.js} +1 -1
- package/dist/components/p-CWlCxabU.js +1 -0
- package/dist/components/p-Cy6HMEsK.js +1 -0
- package/dist/components/{p-C1XPuuO-.js → p-CysnHGj4.js} +1 -1
- package/dist/components/{p-qSu-ayDy.js → p-D4kmO3k7.js} +1 -1
- package/dist/components/{p-DdOM8yc2.js → p-DB52ADSW.js} +1 -1
- package/dist/components/{p-J-Yn0oS3.js → p-DExqkuUY.js} +1 -1
- package/dist/components/{p-MmKik3mL.js → p-DF2wExtn.js} +1 -1
- package/dist/components/{p-D35gOcGh.js → p-DFgtwoFG.js} +1 -1
- package/dist/components/{p-BVFlD1Lp.js → p-DYsHXden.js} +1 -1
- package/dist/components/{p-CWg2auF3.js → p-DZqrfwuw.js} +1 -1
- package/dist/components/p-Dc4UTGgQ.js +1 -0
- package/dist/components/{p-CU5TiEeI.js → p-DyeU47vV.js} +1 -1
- package/dist/components/p-Hvt2oWRk.js +1 -0
- package/dist/components/{p-Cef06v8S.js → p-JyVgfdnC.js} +1 -1
- package/dist/components/p-VKF2AWs1.js +1 -0
- package/dist/components/sd-button-v2.d.ts +11 -0
- package/dist/components/sd-button-v2.js +1 -0
- package/dist/components/sd-button.js +1 -1
- package/dist/components/sd-card.js +1 -1
- package/dist/components/sd-checkbox.js +1 -1
- package/dist/components/sd-date-picker.js +1 -1
- package/dist/components/sd-date-range-picker.js +1 -1
- package/dist/components/sd-dropdown-button.d.ts +11 -0
- package/dist/components/sd-dropdown-button.js +1 -0
- package/dist/components/sd-field.js +1 -1
- package/dist/components/sd-file-picker.js +1 -1
- package/dist/components/sd-floating-portal.js +1 -1
- package/dist/components/sd-guide.js +1 -1
- package/dist/components/sd-icon.js +1 -1
- package/dist/components/sd-input.js +1 -1
- package/dist/components/sd-loading-spinner.js +1 -1
- package/dist/components/sd-modal-card.js +1 -1
- package/dist/components/sd-number-input.js +1 -1
- package/dist/components/sd-pagination.js +1 -1
- package/dist/components/sd-popover.js +1 -1
- package/dist/components/sd-portal.js +1 -1
- package/dist/components/sd-progress.js +1 -1
- package/dist/components/sd-select-dropdown.js +1 -1
- package/dist/components/sd-select-multiple-group.js +1 -1
- package/dist/components/sd-select-multiple.js +1 -1
- package/dist/components/sd-select-option-group.js +1 -1
- package/dist/components/sd-select-option.js +1 -1
- package/dist/components/sd-select-search-input.js +1 -1
- package/dist/components/sd-select.js +1 -1
- package/dist/components/sd-table.js +1 -1
- package/dist/components/sd-textarea.js +1 -1
- package/dist/components/sd-toast.js +1 -1
- package/dist/components/sd-toggle-button.js +1 -1
- package/dist/components/sd-toggle.js +1 -1
- package/dist/components/sd-tooltip.js +1 -1
- package/dist/design-system/design-system.esm.js +1 -1
- package/dist/design-system/p-2ca338f9.entry.js +1 -0
- package/dist/design-system/p-322dbf53.entry.js +1 -0
- package/dist/design-system/p-3885ca10.entry.js +1 -0
- package/dist/design-system/{p-d6b38732.entry.js → p-40da6e22.entry.js} +1 -1
- package/dist/design-system/{p-679e4367.entry.js → p-47d37199.entry.js} +1 -1
- package/dist/design-system/{p-3301c280.entry.js → p-6c34df5b.entry.js} +1 -1
- package/dist/design-system/p-7d35c7a7.entry.js +1 -0
- package/dist/design-system/{p-3d03b19e.entry.js → p-938940a7.entry.js} +1 -1
- package/dist/design-system/p-9650c304.entry.js +1 -0
- package/dist/design-system/{p-8f99cd66.entry.js → p-9ad83ffb.entry.js} +1 -1
- package/dist/design-system/p-CRdYeSBK.js +1 -0
- package/dist/design-system/p-Dc4UTGgQ.js +1 -0
- package/dist/design-system/p-VKF2AWs1.js +1 -0
- package/dist/design-system/{p-d344fa9d.entry.js → p-a547f366.entry.js} +1 -1
- package/dist/design-system/{p-3e07e92a.entry.js → p-b2ab1c50.entry.js} +1 -1
- package/dist/design-system/p-d38f59b3.entry.js +1 -0
- package/dist/design-system/{p-822233ee.entry.js → p-e5c3927f.entry.js} +1 -1
- package/dist/design-system/p-xxEHPVkL.js +1 -0
- package/dist/esm/{select-keyboard-navigation-D8-D-mJX.js → base-dropdown-event-CRdYeSBK.js} +1 -37
- package/dist/esm/component.button-Dc4UTGgQ.js +113 -0
- package/dist/esm/design-system.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/sd-button-v2.config-BWmcscrt.js +193 -0
- package/dist/esm/sd-button-v2.entry.js +84 -0
- package/dist/esm/sd-button_21.entry.js +114 -60
- package/dist/esm/sd-card.entry.js +1 -1
- package/dist/esm/sd-date-picker.entry.js +1 -1
- package/dist/esm/sd-dropdown-button.entry.js +272 -0
- package/dist/esm/sd-file-picker.entry.js +3 -3
- package/dist/esm/sd-guide.entry.js +2 -2
- package/dist/esm/sd-popover.entry.js +2 -2
- package/dist/esm/sd-progress.entry.js +2 -2
- package/dist/esm/sd-select-multiple-group.entry.js +2 -1
- package/dist/esm/sd-select-multiple.entry.js +3 -2
- package/dist/esm/sd-select-option-group.entry.js +3 -3
- package/dist/esm/sd-toggle-button.entry.js +1 -1
- package/dist/esm/sd-toggle.entry.js +1 -1
- package/dist/esm/select-keyboard-navigation-xxEHPVkL.js +37 -0
- package/dist/types/components/sd-button-v2/sd-button-v2.config.d.ts +178 -0
- package/dist/types/components/sd-button-v2/sd-button-v2.d.ts +18 -0
- package/dist/types/components/sd-dropdown-button/sd-dropdown-button.config.d.ts +55 -0
- package/dist/types/components/sd-dropdown-button/sd-dropdown-button.d.ts +34 -0
- package/dist/types/components/sd-portal/sd-portal.d.ts +9 -0
- package/dist/types/components.d.ts +153 -0
- package/dist/types/index.d.ts +2 -0
- package/hydrate/index.js +881 -148
- package/hydrate/index.mjs +881 -148
- package/package.json +2 -2
- package/dist/components/p-B82gJZ4z.js +0 -1
- package/dist/components/p-C6J-ZZxF.js +0 -1
- package/dist/components/p-CHAh-_qx.js +0 -1
- package/dist/design-system/p-103de692.entry.js +0 -1
- package/dist/design-system/p-55c13597.entry.js +0 -1
- package/dist/design-system/p-D8-D-mJX.js +0 -1
- package/dist/design-system/p-de339565.entry.js +0 -1
- package/dist/design-system/p-fc0e636b.entry.js +0 -1
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, a as getElement, h } from './index-C_an1PQ3.js';
|
|
2
|
+
import { B as BaseDropdownEvent } from './base-dropdown-event-CRdYeSBK.js';
|
|
3
|
+
import { B as BUTTON_CONFIG, g as getPresetName, c as PRESET_BORDER_COLORS$1, P as PRESET_CONTENT_COLORS$1, d as PRESET_HOVER_BACKGROUNDS$1, b as BUTTON_FOCUS_RING_COLOR } from './sd-button-v2.config-BWmcscrt.js';
|
|
4
|
+
import { b as buttonTokens } from './component.button-Dc4UTGgQ.js';
|
|
5
|
+
|
|
6
|
+
const color = {
|
|
7
|
+
bg: {
|
|
8
|
+
accent: {
|
|
9
|
+
"default": "#0075FF"}},
|
|
10
|
+
text: {
|
|
11
|
+
secondary: "#333333",
|
|
12
|
+
inverse: "#FFFFFF"
|
|
13
|
+
}};
|
|
14
|
+
var systemTokens = {
|
|
15
|
+
color: color
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const UNSUPPORTED_DROPDOWN_BUTTON_NAMES = new Set([
|
|
19
|
+
'neutral_xs',
|
|
20
|
+
'neutral_sm',
|
|
21
|
+
'neutral_md',
|
|
22
|
+
]);
|
|
23
|
+
const DROPDOWN_BUTTON_NAMES = Object.keys(BUTTON_CONFIG).filter((name) => !name.endsWith('_lg') && !UNSUPPORTED_DROPDOWN_BUTTON_NAMES.has(name));
|
|
24
|
+
const DROPDOWN_BUTTON_CONFIG = Object.fromEntries(DROPDOWN_BUTTON_NAMES.map(name => [name, BUTTON_CONFIG[name]]));
|
|
25
|
+
const DROPDOWN_BUTTON_MIN_WIDTHS = {
|
|
26
|
+
xs: buttonTokens.dropdown.xs.minWidth,
|
|
27
|
+
sm: buttonTokens.dropdown.sm.minWidth,
|
|
28
|
+
md: buttonTokens.dropdown.md.minWidth,
|
|
29
|
+
};
|
|
30
|
+
const PRESET_HOVER_BACKGROUNDS = PRESET_HOVER_BACKGROUNDS$1;
|
|
31
|
+
const PRESET_CONTENT_COLORS = PRESET_CONTENT_COLORS$1;
|
|
32
|
+
const PRESET_BORDER_COLORS = PRESET_BORDER_COLORS$1;
|
|
33
|
+
const PRESET_DIVIDER_COLORS = {
|
|
34
|
+
primary: buttonTokens.brand.strong.dropdown.divider,
|
|
35
|
+
secondary: buttonTokens.brand.subtle.dropdown.divider,
|
|
36
|
+
primary_outline: PRESET_BORDER_COLORS.primary_outline,
|
|
37
|
+
neutral: buttonTokens.neutral.outline.border,
|
|
38
|
+
neutral_outline: PRESET_BORDER_COLORS.neutral_outline,
|
|
39
|
+
danger: buttonTokens.danger.strong.dropdown.divider,
|
|
40
|
+
danger_outline: PRESET_BORDER_COLORS.danger_outline,
|
|
41
|
+
};
|
|
42
|
+
const MENU_ITEM_COLOR = systemTokens.color.text.secondary;
|
|
43
|
+
const MENU_ITEM_ACTIVE_BACKGROUND = systemTokens.color.bg.accent.default;
|
|
44
|
+
const MENU_ITEM_ACTIVE_COLOR = systemTokens.color.text.inverse;
|
|
45
|
+
const PRESET_MENU_ITEM_COLORS = {
|
|
46
|
+
primary: MENU_ITEM_COLOR,
|
|
47
|
+
secondary: MENU_ITEM_COLOR,
|
|
48
|
+
primary_outline: MENU_ITEM_COLOR,
|
|
49
|
+
neutral: MENU_ITEM_COLOR,
|
|
50
|
+
neutral_outline: MENU_ITEM_COLOR,
|
|
51
|
+
danger: MENU_ITEM_COLOR,
|
|
52
|
+
danger_outline: MENU_ITEM_COLOR,
|
|
53
|
+
};
|
|
54
|
+
const PRESET_MENU_ITEM_ACTIVE_BACKGROUNDS = {
|
|
55
|
+
primary: MENU_ITEM_ACTIVE_BACKGROUND,
|
|
56
|
+
secondary: MENU_ITEM_ACTIVE_BACKGROUND,
|
|
57
|
+
primary_outline: MENU_ITEM_ACTIVE_BACKGROUND,
|
|
58
|
+
neutral: MENU_ITEM_ACTIVE_BACKGROUND,
|
|
59
|
+
neutral_outline: MENU_ITEM_ACTIVE_BACKGROUND,
|
|
60
|
+
danger: MENU_ITEM_ACTIVE_BACKGROUND,
|
|
61
|
+
danger_outline: MENU_ITEM_ACTIVE_BACKGROUND,
|
|
62
|
+
};
|
|
63
|
+
const PRESET_MENU_ITEM_ACTIVE_COLORS = {
|
|
64
|
+
primary: MENU_ITEM_ACTIVE_COLOR,
|
|
65
|
+
secondary: MENU_ITEM_ACTIVE_COLOR,
|
|
66
|
+
primary_outline: MENU_ITEM_ACTIVE_COLOR,
|
|
67
|
+
neutral: MENU_ITEM_ACTIVE_COLOR,
|
|
68
|
+
neutral_outline: MENU_ITEM_ACTIVE_COLOR,
|
|
69
|
+
danger: MENU_ITEM_ACTIVE_COLOR,
|
|
70
|
+
danger_outline: MENU_ITEM_ACTIVE_COLOR,
|
|
71
|
+
};
|
|
72
|
+
const DROPDOWN_DISABLED_BACKGROUND = buttonTokens.bg.disabled;
|
|
73
|
+
const DROPDOWN_DISABLED_CONTENT = buttonTokens.content.disabled;
|
|
74
|
+
const DROPDOWN_DISABLED_BORDER = buttonTokens.border.disabled;
|
|
75
|
+
const isDropdownButtonName = (value) => value in DROPDOWN_BUTTON_CONFIG;
|
|
76
|
+
const getDropdownButtonPreset = (value) => getPresetName(value);
|
|
77
|
+
|
|
78
|
+
const sdDropdownButtonCss = () => `sd-dropdown-button{display:inline-flex;width:fit-content;height:fit-content}.sd-dropdown-button{display:inline-flex;position:relative}.sd-dropdown-button__trigger{--sd-dropdown-button-height:var(--sd-button-md-height, 34px);--sd-dropdown-button-padding-x:var(--sd-button-md-padding-x, 20px);--sd-dropdown-button-gap:var(--sd-button-md-gap, 8px);--sd-dropdown-button-font-family:var(--sd-button-md-typography-font-family, inherit);--sd-dropdown-button-font-size:var(--sd-button-md-typography-font-size, 12px);--sd-dropdown-button-font-weight:var(--sd-button-md-typography-font-weight, 500);--sd-dropdown-button-text-decoration:var(--sd-button-md-typography-text-decoration, none);--sd-dropdown-button-bg:#025497;--sd-dropdown-button-bg-hover:#004177;--sd-dropdown-button-border:transparent;--sd-dropdown-button-content:#ffffff;--sd-dropdown-button-divider:#006ac1;--sd-dropdown-button-accent:#006ac1;--sd-dropdown-button-min-width:106px;--sd-dropdown-button-disabled-bg:var(--sd-button-bg-disabled, $grey_30);--sd-dropdown-button-disabled-content:var(--sd-button-content-disabled, $grey_65);--sd-dropdown-button-disabled-border:var(--sd-button-border-disabled, $grey_45);display:inline-flex;align-items:stretch;justify-content:space-between;min-width:var(--sd-dropdown-button-min-width);min-height:var(--sd-dropdown-button-height);padding:0;border:var(--sd-button-border-width-default, 1px) solid var(--sd-dropdown-button-border);border-radius:var(--sd-button-radius-default, 4px);background:var(--sd-dropdown-button-bg);color:var(--sd-dropdown-button-content);cursor:pointer;box-sizing:border-box;font-family:var(--sd-dropdown-button-font-family);font-size:var(--sd-dropdown-button-font-size);font-weight:var(--sd-dropdown-button-font-weight);line-height:1;text-decoration:var(--sd-dropdown-button-text-decoration);transition:background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;white-space:nowrap}.sd-dropdown-button__trigger:hover:not(.sd-dropdown-button__trigger--disabled){background:var(--sd-dropdown-button-bg-hover)}.sd-dropdown-button__trigger:focus-visible{outline:0;box-shadow:0 0 0 2px var(--sd-dropdown-button-accent)}.sd-dropdown-button__trigger--xs{--sd-dropdown-button-height:var(--sd-button-xs-height, 24px);--sd-dropdown-button-padding-x:var(--sd-button-xs-padding-x, 8px);--sd-dropdown-button-gap:var(--sd-button-xs-gap, 4px);--sd-dropdown-button-font-family:var(--sd-button-xs-typography-font-family, inherit);--sd-dropdown-button-font-size:var(--sd-button-xs-typography-font-size, 12px);--sd-dropdown-button-font-weight:var(--sd-button-xs-typography-font-weight, 500);--sd-dropdown-button-text-decoration:var(--sd-button-xs-typography-text-decoration, none)}.sd-dropdown-button__trigger--sm{--sd-dropdown-button-height:var(--sd-button-sm-height, 28px);--sd-dropdown-button-padding-x:var(--sd-button-sm-padding-x, 12px);--sd-dropdown-button-gap:var(--sd-button-sm-gap, 6px);--sd-dropdown-button-font-family:var(--sd-button-sm-typography-font-family, inherit);--sd-dropdown-button-font-size:var(--sd-button-sm-typography-font-size, 12px);--sd-dropdown-button-font-weight:var(--sd-button-sm-typography-font-weight, 500);--sd-dropdown-button-text-decoration:var(--sd-button-sm-typography-text-decoration, none)}.sd-dropdown-button__trigger--md{--sd-dropdown-button-height:var(--sd-button-md-height, 34px);--sd-dropdown-button-padding-x:var(--sd-button-md-padding-x, 20px);--sd-dropdown-button-gap:var(--sd-button-md-gap, 8px);--sd-dropdown-button-font-family:var(--sd-button-md-typography-font-family, inherit);--sd-dropdown-button-font-size:var(--sd-button-md-typography-font-size, 16px);--sd-dropdown-button-font-weight:var(--sd-button-md-typography-font-weight, 500);--sd-dropdown-button-text-decoration:var(--sd-button-md-typography-text-decoration, none)}.sd-dropdown-button__trigger--disabled{border-color:var(--sd-dropdown-button-disabled-border);background:var(--sd-dropdown-button-disabled-bg);color:var(--sd-dropdown-button-disabled-content);cursor:not-allowed}.sd-dropdown-button__trigger--disabled .sd-dropdown-button__trigger-divider{background:var(--sd-dropdown-button-disabled-border)}.sd-dropdown-button__trigger-label,.sd-dropdown-button__trigger-icon{display:inline-flex;align-items:center;justify-content:center}.sd-dropdown-button__trigger-label{flex:1 1 auto;min-width:0;padding:0 var(--sd-dropdown-button-padding-x)}.sd-dropdown-button__trigger-divider{align-self:stretch;width:1px;height:auto;background:var(--sd-dropdown-button-divider);opacity:0.9}.sd-dropdown-button__trigger-icon{flex:0 0 auto;min-width:calc(var(--sd-dropdown-button-height) - 2px);padding:0 calc(var(--sd-dropdown-button-gap) + 2px)}.sd-dropdown-button__menu{display:grid;width:max-content;min-width:max-content;max-width:calc(100vw - 24px);padding:4px 0;border:0;border-radius:4px;background:#FFFFFF;box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.1019607843);box-sizing:border-box;overflow:hidden}.sd-dropdown-button__menu-item{display:inline-flex;align-items:center;gap:8px;min-height:28px;width:100%;padding:0 12px;border:0;border-radius:0;background:transparent;color:var(--sd-dropdown-button-menu-item-color);cursor:pointer;box-sizing:border-box;font:inherit;text-align:left;transition:background-color 0.15s ease, color 0.15s ease}.sd-dropdown-button__menu-item--active{background:var(--sd-dropdown-button-menu-item-active-bg);color:var(--sd-dropdown-button-menu-item-active-color)}.sd-dropdown-button__menu-item--disabled{color:var(--sd-dropdown-button-disabled-content);cursor:not-allowed}.sd-dropdown-button__menu-item-icon{flex:0 0 auto}.sd-dropdown-button__menu-item-label{display:inline-flex;align-items:center;min-width:0;white-space:nowrap;font-size:12px}`;
|
|
79
|
+
|
|
80
|
+
const SdDropdownButton = class extends BaseDropdownEvent {
|
|
81
|
+
constructor(hostRef) {
|
|
82
|
+
super();
|
|
83
|
+
registerInstance(this, hostRef);
|
|
84
|
+
this.click = createEvent(this, "sdClick");
|
|
85
|
+
this.dropDownShow = createEvent(this, "sdDropDownShow");
|
|
86
|
+
}
|
|
87
|
+
get el() { return getElement(this); }
|
|
88
|
+
name = 'primary_sm';
|
|
89
|
+
label = '';
|
|
90
|
+
items = [];
|
|
91
|
+
disabled = false;
|
|
92
|
+
isOpen = false;
|
|
93
|
+
itemIndex = -1;
|
|
94
|
+
triggerRef;
|
|
95
|
+
menuRef;
|
|
96
|
+
click;
|
|
97
|
+
dropDownShow;
|
|
98
|
+
handleOpenChange(isOpen) {
|
|
99
|
+
this.onDropdownToggle(isOpen);
|
|
100
|
+
this.dropDownShow.emit({ isOpen });
|
|
101
|
+
if (!isOpen) {
|
|
102
|
+
this.itemIndex = -1;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
componentWillLoad() {
|
|
106
|
+
this.initializeEvent();
|
|
107
|
+
}
|
|
108
|
+
disconnectedCallback() {
|
|
109
|
+
this.cleanupEvent();
|
|
110
|
+
}
|
|
111
|
+
async sdOpen() {
|
|
112
|
+
if (this.disabled || this.items.length === 0)
|
|
113
|
+
return;
|
|
114
|
+
this.isOpen = true;
|
|
115
|
+
}
|
|
116
|
+
async sdClose() {
|
|
117
|
+
this.closeDropdown();
|
|
118
|
+
}
|
|
119
|
+
closeDropdown = () => {
|
|
120
|
+
this.isOpen = false;
|
|
121
|
+
};
|
|
122
|
+
handleDocumentClick(event) {
|
|
123
|
+
const target = event.target;
|
|
124
|
+
if (!target)
|
|
125
|
+
return;
|
|
126
|
+
if (this.el.contains(target))
|
|
127
|
+
return;
|
|
128
|
+
if (this.menuRef?.contains(target))
|
|
129
|
+
return;
|
|
130
|
+
this.closeDropdown();
|
|
131
|
+
}
|
|
132
|
+
handleDocumentKeydown(event) {
|
|
133
|
+
if (!this.isOpen)
|
|
134
|
+
return;
|
|
135
|
+
const targetKeys = ['ArrowDown', 'ArrowUp', 'Enter', 'Escape'];
|
|
136
|
+
if (!targetKeys.includes(event.key))
|
|
137
|
+
return;
|
|
138
|
+
event.preventDefault();
|
|
139
|
+
event.stopPropagation();
|
|
140
|
+
switch (event.key) {
|
|
141
|
+
case 'ArrowDown':
|
|
142
|
+
this.itemIndex = this.getNextEnabledIndex(1);
|
|
143
|
+
break;
|
|
144
|
+
case 'ArrowUp':
|
|
145
|
+
this.itemIndex = this.getNextEnabledIndex(-1);
|
|
146
|
+
break;
|
|
147
|
+
case 'Enter':
|
|
148
|
+
if (this.itemIndex < 0)
|
|
149
|
+
return;
|
|
150
|
+
this.selectItem(this.items[this.itemIndex]);
|
|
151
|
+
break;
|
|
152
|
+
case 'Escape':
|
|
153
|
+
this.closeDropdown();
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
get resolvedConfig() {
|
|
158
|
+
if (!isDropdownButtonName(this.name)) {
|
|
159
|
+
throw new Error(`Invalid sd-dropdown-button name: ${this.name}`);
|
|
160
|
+
}
|
|
161
|
+
const config = DROPDOWN_BUTTON_CONFIG[this.name];
|
|
162
|
+
const preset = getDropdownButtonPreset(this.name);
|
|
163
|
+
return {
|
|
164
|
+
config,
|
|
165
|
+
preset,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
getNextEnabledIndex(direction) {
|
|
169
|
+
const enabledIndices = this.items.reduce((acc, item, index) => {
|
|
170
|
+
if (!item.disabled) {
|
|
171
|
+
acc.push(index);
|
|
172
|
+
}
|
|
173
|
+
return acc;
|
|
174
|
+
}, []);
|
|
175
|
+
if (enabledIndices.length === 0) {
|
|
176
|
+
return -1;
|
|
177
|
+
}
|
|
178
|
+
const currentPosition = enabledIndices.indexOf(this.itemIndex);
|
|
179
|
+
if (currentPosition === -1) {
|
|
180
|
+
return direction === 1 ? enabledIndices[0] : enabledIndices[enabledIndices.length - 1];
|
|
181
|
+
}
|
|
182
|
+
const nextPosition = (currentPosition + direction + enabledIndices.length) % enabledIndices.length;
|
|
183
|
+
return enabledIndices[nextPosition];
|
|
184
|
+
}
|
|
185
|
+
toggleDropdown = (event) => {
|
|
186
|
+
event.stopPropagation();
|
|
187
|
+
if (this.disabled || this.items.length === 0) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
this.isOpen = !this.isOpen;
|
|
191
|
+
};
|
|
192
|
+
selectItem(item, event) {
|
|
193
|
+
event?.stopPropagation();
|
|
194
|
+
if (!item || item.disabled) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
this.click.emit(item.value);
|
|
198
|
+
this.closeDropdown();
|
|
199
|
+
}
|
|
200
|
+
getTriggerClasses(preset, size, disabled, isOpen) {
|
|
201
|
+
const classes = [
|
|
202
|
+
'sd-dropdown-button__trigger',
|
|
203
|
+
`sd-dropdown-button__trigger--${preset}`,
|
|
204
|
+
`sd-dropdown-button__trigger--${size}`,
|
|
205
|
+
];
|
|
206
|
+
if (disabled) {
|
|
207
|
+
classes.push('sd-dropdown-button__trigger--disabled');
|
|
208
|
+
}
|
|
209
|
+
if (isOpen) {
|
|
210
|
+
classes.push('sd-dropdown-button__trigger--open');
|
|
211
|
+
}
|
|
212
|
+
return classes.join(' ');
|
|
213
|
+
}
|
|
214
|
+
getMenuItemClasses(isActive, isDisabled) {
|
|
215
|
+
const classes = ['sd-dropdown-button__menu-item'];
|
|
216
|
+
if (isActive) {
|
|
217
|
+
classes.push('sd-dropdown-button__menu-item--active');
|
|
218
|
+
}
|
|
219
|
+
if (isDisabled) {
|
|
220
|
+
classes.push('sd-dropdown-button__menu-item--disabled');
|
|
221
|
+
}
|
|
222
|
+
return classes.join(' ');
|
|
223
|
+
}
|
|
224
|
+
renderDropdown(preset) {
|
|
225
|
+
if (!this.isOpen || !this.triggerRef)
|
|
226
|
+
return null;
|
|
227
|
+
return (h("sd-portal", { open: this.isOpen, parentRef: this.triggerRef, onSdClose: this.closeDropdown }, h("div", { class: "sd-dropdown-button__menu", role: "menu", ref: el => (this.menuRef = el), style: {
|
|
228
|
+
'--sd-dropdown-button-menu-item-color': PRESET_MENU_ITEM_COLORS[preset],
|
|
229
|
+
'--sd-dropdown-button-menu-item-active-bg': PRESET_MENU_ITEM_ACTIVE_BACKGROUNDS[preset],
|
|
230
|
+
'--sd-dropdown-button-menu-item-active-color': PRESET_MENU_ITEM_ACTIVE_COLORS[preset],
|
|
231
|
+
'--sd-dropdown-button-menu-border': PRESET_BORDER_COLORS[preset] === 'transparent'
|
|
232
|
+
? PRESET_DIVIDER_COLORS[preset]
|
|
233
|
+
: PRESET_BORDER_COLORS[preset],
|
|
234
|
+
} }, this.items.map((item, index) => {
|
|
235
|
+
const isActive = this.itemIndex === index && !item.disabled;
|
|
236
|
+
const iconColor = item.disabled
|
|
237
|
+
? DROPDOWN_DISABLED_CONTENT
|
|
238
|
+
: isActive
|
|
239
|
+
? PRESET_MENU_ITEM_ACTIVE_COLORS[preset]
|
|
240
|
+
: PRESET_MENU_ITEM_COLORS[preset];
|
|
241
|
+
return (h("button", { type: "button", role: "menuitem", class: this.getMenuItemClasses(isActive, Boolean(item.disabled)), disabled: item.disabled, onClick: event => this.selectItem(item, event), onMouseEnter: () => {
|
|
242
|
+
if (!item.disabled) {
|
|
243
|
+
this.itemIndex = index;
|
|
244
|
+
}
|
|
245
|
+
} }, item.icon && (h("sd-icon", { class: "sd-dropdown-button__menu-item-icon", name: item.icon, size: 12, color: iconColor })), h("span", { class: "sd-dropdown-button__menu-item-label", innerHTML: item.label })));
|
|
246
|
+
}))));
|
|
247
|
+
}
|
|
248
|
+
render() {
|
|
249
|
+
const { config, preset } = this.resolvedConfig;
|
|
250
|
+
const chevronColor = this.disabled ? DROPDOWN_DISABLED_CONTENT : PRESET_CONTENT_COLORS[preset];
|
|
251
|
+
return (h("div", { key: '0bd454e599c8eb56b88f63a5f74e1d9db4b568f9', class: "sd-dropdown-button" }, h("button", { key: '804dd19dc0d49969e89d0742e71f61fe610e3f3d', type: "button", class: this.getTriggerClasses(preset, config.size, this.disabled, this.isOpen), disabled: this.disabled, "aria-haspopup": "menu", "aria-expanded": String(this.isOpen), onClick: this.toggleDropdown, ref: el => (this.triggerRef = el), style: {
|
|
252
|
+
'--sd-dropdown-button-min-width': `${DROPDOWN_BUTTON_MIN_WIDTHS[config.size]}px`,
|
|
253
|
+
'--sd-dropdown-button-bg': config.color,
|
|
254
|
+
'--sd-dropdown-button-bg-hover': PRESET_HOVER_BACKGROUNDS[preset],
|
|
255
|
+
'--sd-dropdown-button-border': PRESET_BORDER_COLORS[preset],
|
|
256
|
+
'--sd-dropdown-button-content': PRESET_CONTENT_COLORS[preset],
|
|
257
|
+
'--sd-dropdown-button-divider': PRESET_DIVIDER_COLORS[preset],
|
|
258
|
+
'--sd-dropdown-button-accent': BUTTON_FOCUS_RING_COLOR,
|
|
259
|
+
'--sd-dropdown-button-disabled-bg': DROPDOWN_DISABLED_BACKGROUND,
|
|
260
|
+
'--sd-dropdown-button-disabled-content': DROPDOWN_DISABLED_CONTENT,
|
|
261
|
+
'--sd-dropdown-button-disabled-border': DROPDOWN_DISABLED_BORDER,
|
|
262
|
+
} }, h("span", { key: '038dd3ad8c7c07d3ebb435a6fec27dd31b8fdba0', class: "sd-dropdown-button__trigger-label" }, this.label), h("span", { key: 'c5c2c0fffa200a4772d7e448e1a1b95745be4faa', class: "sd-dropdown-button__trigger-divider", "aria-hidden": "true" }), h("span", { key: 'a6f1db25929c10b9dc9ccbae2655eed3c67dff22', class: "sd-dropdown-button__trigger-icon", "aria-hidden": "true" }, h("sd-icon", { key: '4c1533a7efd5a7d695e460bad9dfc2b8a7fe5740', name: this.isOpen ? 'arrowUp' : 'arrowDown', size: 12, color: chevronColor }))), this.renderDropdown(preset)));
|
|
263
|
+
}
|
|
264
|
+
static get watchers() { return {
|
|
265
|
+
"isOpen": [{
|
|
266
|
+
"handleOpenChange": 0
|
|
267
|
+
}]
|
|
268
|
+
}; }
|
|
269
|
+
};
|
|
270
|
+
SdDropdownButton.style = sdDropdownButtonCss();
|
|
271
|
+
|
|
272
|
+
export { SdDropdownButton as sd_dropdown_button };
|
|
@@ -98,15 +98,15 @@ const SdFilePicker = class {
|
|
|
98
98
|
render() {
|
|
99
99
|
const hasFiles = this.hasFiles();
|
|
100
100
|
const displayText = this.getDisplayText();
|
|
101
|
-
return (h("div", { key: '
|
|
101
|
+
return (h("div", { key: 'dfdb1f7cc4793c23cfb1ae97464981833263421e', class: {
|
|
102
102
|
'sd-file-picker': true,
|
|
103
103
|
[this.getStatusClass()]: true,
|
|
104
104
|
'sd-file-picker--inline': this.inline,
|
|
105
|
-
}, onClick: this.handleClick, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false) }, h("input", { key: '
|
|
105
|
+
}, onClick: this.handleClick, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false) }, h("input", { key: 'bd4a072a517391b63116de1561aaf6606b1a8343', ref: el => (this.fileInputRef = el), type: "file", class: "sd-file-picker__input", disabled: this.disabled, multiple: this.multiple, accept: this.accept, onInput: this.handleFileChange, "aria-label": this.placeholder }), h("sd-icon", { key: '12280a64236d3fd9b63a9d15be11426efdd81629', name: "attachFile", size: 16, color: this.getIconColor(), class: "sd-file-picker__icon" }), h("div", { key: '935a7d98ee034d59f16b410eb1495cd009ce6024', ref: el => (this.fileNamesRef = el), class: {
|
|
106
106
|
'sd-file-picker__text': true,
|
|
107
107
|
'sd-file-picker__text--placeholder': !hasFiles,
|
|
108
108
|
'sd-file-picker__text--active': hasFiles,
|
|
109
|
-
} }, displayText), !this.disabled && hasFiles && (h("sd-icon", { key: '
|
|
109
|
+
} }, displayText), !this.disabled && hasFiles && (h("sd-icon", { key: '08f38161be5d1754b4f5b1bba185a29976ffd1dd', name: "close", size: 12, color: "#888888", class: "sd-file-picker__clear-icon", onClick: this.handleClear })), this.showTooltip && hasFiles && this.hovered && (h("div", { key: 'db6edfa98b3832276b320a6f3b4e195cfaeff4d6', class: "sd-file-picker__tooltip" }, displayText))));
|
|
110
110
|
}
|
|
111
111
|
static get watchers() { return {
|
|
112
112
|
"value": [{
|
|
@@ -53,9 +53,9 @@ const SdGuide = class {
|
|
|
53
53
|
};
|
|
54
54
|
render() {
|
|
55
55
|
const { name: iconName, size: iconSize, color: iconColor } = GUIDE_ICON[this.type];
|
|
56
|
-
return (h("div", { key: '
|
|
56
|
+
return (h("div", { key: '3e6914fc5c99e8f95d5ed613ddd61271bc4e91f9', class: "sd-guide", style: {
|
|
57
57
|
'--sd-guide-color': GUIDE_ICON[this.type].color,
|
|
58
|
-
} }, h("sd-button", { key: '
|
|
58
|
+
} }, h("sd-button", { key: 'b8e5be2cecec423cb2695c47c9493281c867dbde', ref: el => (this.guideRef = el), class: this.guideClass, variant: this.popupShow ? 'primary' : 'outline', label: this.label || GUIDE_LABEL[this.type], size: "sm", color: this.popupShow ? GUIDE_ICON[this.type].color : 'grey_45', icon: iconName, iconColor: this.popupShow ? 'white' : iconColor, iconSize: iconSize, noHover: this.popupShow, onSdClick: this.handleClickGuide }), this.type === 'help' && this.popupShow && (h("sd-portal", { key: '7d87b81704d2912f9a4bbe22ff702063da9ca0ff', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 4] }, h("div", { key: 'd34d55e52ecb3b0a72356dcd86c2127217da4af5', style: { position: 'absolute', width: '0px', height: '0px' } }, h("div", { key: '396bf4845c0e9167440c623c876f895705b973e9', class: "sd-guide__popup", style: { width: this.popupWidth ? this.popupWidth + 'px' : '426px' } }, h("sd-button", { key: '6a678e322df5d9daffd09188daebbbcc0e757ed9', class: "sd-guide__popup__close", icon: "close", color: "grey_65", size: "md", variant: "ghost", noHover: true, onSdClick: this.closeDropdown }), h("div", { key: '8b4abeac25a09b1eb8ee8285d2afff9a0a470c6c', class: "sd-guide__popup__header" }, h("sd-icon", { key: 'b6216567fa83cf131e97c10f2b9f827b13f660a3', name: "helpOutline", size: 24, color: "green_65" }), h("h3", { key: '5a87da148989c89e196fee9a96bbb51e516dca4d', class: "sd-guide__popup__title" }, this.popupTitle || GUIDE_LABEL[this.type])), h("ul", { key: 'a4ebb25ecef588ca5367006adb6aaf446fbd59a9', class: "sd-guide__popup__list" }, this.renderListItem(this.message))))))));
|
|
59
59
|
}
|
|
60
60
|
// 현재 2depth까지만 스타일 적용
|
|
61
61
|
renderListItem(message, depth = 0) {
|
|
@@ -36,11 +36,11 @@ const SdPopover = class {
|
|
|
36
36
|
this.showPopover = false;
|
|
37
37
|
};
|
|
38
38
|
render() {
|
|
39
|
-
return (h(Fragment, { key: '
|
|
39
|
+
return (h(Fragment, { key: '4c256f17bc8601f889d18e2b8ee9ce5b4436b75e' }, this.label ? (h("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-popover", onSdClick: () => (this.showPopover = !this.showPopover) })) : (h("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-popover", onClick: () => (this.showPopover = !this.showPopover) })), this.showPopover && (h("sd-floating-portal", { key: 'd1a8ef964dc6b9458b47d2d2e0d1eb25662e1537', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: this.placement }, h("div", { key: '1aef778cbd469b16fe145957ea05c0ccbc2af8e7', class: {
|
|
40
40
|
'sd-floating-menu': true,
|
|
41
41
|
[`sd-floating-menu--${this.placement}`]: true,
|
|
42
42
|
[this.menuClass]: !!this.menuClass,
|
|
43
|
-
} }, h("i", { key: '
|
|
43
|
+
} }, h("i", { key: 'ff8f07f418d3bdcaf15b7e058158b91bd1cd2185', class: `sd-floating-menu__arrow sd-floating-menu__arrow--${this.placement}` }, h(TooltipArrow, { key: '9b1fb0577a5dcdf54ec1cc60935a9c3c1aa8319c' })), h("div", { key: '0bfd33f6dde24fcdca635cbee04d2bc618f15185', class: "sd-floating-menu__content" }, this.menuTitle && h("div", { key: 'de381d79af2f5d976e5cbccf5ed2b60aae9e6f26', class: "sd-floating-menu__title" }, this.menuTitle), this.messages.length > 0 && (h("div", { key: '316f3398861cc9e54f5c16bd08c7b45422857ae1', class: "sd-floating-menu__messages" }, this.messages.map(message => (h("div", null, message))))), this.buttons.length > 0 && (h("div", { key: '2466d39c9105310821a509cc8d493d34b27bbb7d', class: `sd-floating-menu__buttons sd-floating-menu__buttons--${this.buttons.length}` }, this.buttons.map(button => (h("sd-button", { ...button })))))), this.useClose && (h("button", { key: 'd9cf295dfe0a20e9f79f371292520d9c757df55d', title: "close", class: "sd-floating-menu__close-button", onClick: () => this.handleClose() }, h("sd-icon", { key: '3ecc02bbfc890b1f66c57160041882c27153e44b', name: "close", size: "12", color: "gery_55" }))))))));
|
|
44
44
|
}
|
|
45
45
|
static get watchers() { return {
|
|
46
46
|
"show": [{
|
|
@@ -39,10 +39,10 @@ const SdProgress = class {
|
|
|
39
39
|
return this.statusColor[this.progressStatus];
|
|
40
40
|
}
|
|
41
41
|
render() {
|
|
42
|
-
return (h("div", { key: '
|
|
42
|
+
return (h("div", { key: 'a11cc2a22ad1628d63882ca1e5f7f1e3715ba719', style: {
|
|
43
43
|
'--progress-color': this.progressColor,
|
|
44
44
|
'--progress-percentage': `${this.progressPercentage}%`,
|
|
45
|
-
} }, this.type === 'bar' ? this.renderBarProgress() : this.renderSpinnerProgress(), this.label && h("div", { key: '
|
|
45
|
+
} }, this.type === 'bar' ? this.renderBarProgress() : this.renderSpinnerProgress(), this.label && h("div", { key: 'dbc62a8fa4039127356f8b734482e1d0eb26c22b', class: "sd-progress__label" }, this.label)));
|
|
46
46
|
}
|
|
47
47
|
renderBarProgress() {
|
|
48
48
|
return (h("div", { class: `sd-progress__bar sd-progress__bar--${this.progressStatus}` }, h("div", { class: ['sd-progress__bar__percent', this.progressPercentage < 100 ? 'proceed' : ''].join(' ') }), h("div", { class: "sd-progress__bar__indicator sd-progress__bar__indicator--left" }, this.progressPercentage, "%"), h("div", { class: "sd-progress__bar__indicator sd-progress__bar__indicator--right" }, this.progressPercentage, "%")));
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, a as getElement, h, F as Fragment } from './index-C_an1PQ3.js';
|
|
2
|
-
import {
|
|
2
|
+
import { n as nanoid, S as SelectKeyboardNavigation } from './select-keyboard-navigation-xxEHPVkL.js';
|
|
3
|
+
import { B as BaseDropdownEvent } from './base-dropdown-event-CRdYeSBK.js';
|
|
3
4
|
|
|
4
5
|
const sdSelectMultipleGroupCss = () => `.sd-select-multiple-group__dropdown{overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.sd-select-multiple-group__dropdown::-webkit-scrollbar{opacity:0;background:#E5E5E5}.sd-select-multiple-group__dropdown::-webkit-scrollbar:horizontal{height:8px}.sd-select-multiple-group__dropdown::-webkit-scrollbar:vertical{width:8px}.sd-select-multiple-group__dropdown::-webkit-scrollbar-thumb{height:80px;background-color:#CCCCCC;border-radius:4px}.sd-select-multiple-group__dropdown::-webkit-scrollbar-track{background-color:transparent}.sd-select-multiple-group__dropdown .sd-select-multiple-group__option-placeholder{height:48px;display:flex;align-items:center;padding:8px 16px;font-size:12px;line-height:0;text-align:left;color:#888888}sd-select-multiple-group{display:inline-flex;flex-flow:column nowrap;width:fit-content;height:fit-content}sd-select-multiple-group:focus,sd-select-multiple-group:focus-visible,sd-select-multiple-group:focus-within{outline:none !important}sd-select-multiple-group .sd-select-multiple-group{width:100%}sd-select-multiple-group .sd-select-multiple-group .sd-select-multiple-group__trigger{padding:4px 20px 4px 12px;display:flex;width:100%;align-items:center}sd-select-multiple-group .sd-select-multiple-group .sd-select-multiple-group__trigger .sd-select-multiple-group__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px;font-size:12px;font-weight:400}sd-select-multiple-group .sd-select-multiple-group .sd-select-multiple-group__trigger .sd-select-multiple-group__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}sd-select-multiple-group .sd-select-multiple-group .sd-select-multiple-group__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease}sd-select-multiple-group .sd-select-multiple-group .sd-select-multiple-group__arrow--open{transform:rotate(180deg)}.sd-select-multiple-group__dropdown{width:var(--select-width, 200px);max-height:var(--select-dropdown-height, 260px);padding-bottom:2px;background-color:white;box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.1);border-radius:4px;overflow-y:auto;color:#333333;opacity:0.5;transition:opacity 0.15s ease-in}.sd-select-multiple-group__dropdown--ready{opacity:1}`;
|
|
5
6
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, a as getElement, h } from './index-C_an1PQ3.js';
|
|
2
|
-
import {
|
|
2
|
+
import { n as nanoid, S as SelectKeyboardNavigation } from './select-keyboard-navigation-xxEHPVkL.js';
|
|
3
|
+
import { B as BaseDropdownEvent } from './base-dropdown-event-CRdYeSBK.js';
|
|
3
4
|
|
|
4
5
|
const sdSelectMultipleCss = () => `sd-select-multiple{display:inline-flex;flex-flow:column nowrap;height:fit-content}sd-select-multiple *:focus,sd-select-multiple *:focus-visible,sd-select-multiple *:focus-within{outline:none !important}sd-select-multiple .sd-select-multiple{width:100%}sd-select-multiple .sd-select-multiple .sd-select-multiple__trigger{padding:4px 28px 4px 12px;display:flex;width:100%;align-items:center}sd-select-multiple .sd-select-multiple .sd-select-multiple__trigger .sd-select-multiple__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px;font-size:12px;font-weight:400;text-align:left}sd-select-multiple .sd-select-multiple .sd-select-multiple__trigger .sd-select-multiple__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}sd-select-multiple .sd-select-multiple__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease;margin-left:8px}sd-select-multiple .sd-select-multiple__arrow--open{transform:rotate(180deg)}`;
|
|
5
6
|
|
|
@@ -149,7 +150,7 @@ const SdSelectMultiple = class extends BaseDropdownEvent {
|
|
|
149
150
|
this.handleOptionSelection(option);
|
|
150
151
|
};
|
|
151
152
|
render() {
|
|
152
|
-
return (h("sd-field", { key: '
|
|
153
|
+
return (h("sd-field", { key: '9f78c7a47f580ba6d64fbc4a69e2f1f72f30e66f', label: this.label, name: this.name, rules: this.rules, error: this.error, disabled: this.disabled, useLabelRequired: this.useLabelRequired, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el) }, h("div", { key: 'fab43f26f83788991067096f8574421ddeb0a829', class: {
|
|
153
154
|
'sd-select-multiple': true,
|
|
154
155
|
'sd-select-multiple--open': this.isOpen,
|
|
155
156
|
'sd-select-multiple--disabled': this.disabled,
|
|
@@ -46,7 +46,7 @@ const SdSelectOptionGroup = class {
|
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
48
|
render() {
|
|
49
|
-
return (h("div", { key: '
|
|
49
|
+
return (h("div", { key: '70ab9a558faf068cfc4eb0a5f6a29453ceedc6ec', class: {
|
|
50
50
|
'sd-select__option-group': true,
|
|
51
51
|
'sd-select__option-group--selected': !!this.isSelected,
|
|
52
52
|
'sd-select__option-group--disabled': !!this.option.disabled,
|
|
@@ -55,10 +55,10 @@ const SdSelectOptionGroup = class {
|
|
|
55
55
|
'sd-select__option-group--group': this.option.type === 'group',
|
|
56
56
|
'sd-select__option-group--subgroup': this.option.type === 'subgroup',
|
|
57
57
|
'sd-select__option-group--item': this.option.type === 'item',
|
|
58
|
-
}, onMouseEnter: () => (this.isHovered = true), onMouseLeave: () => (this.isHovered = false), style: this.optionStyle, "data-index": this.index, onClick: event => this.handleClick(this.option, this.isSelected, event) }, h("div", { key: '
|
|
58
|
+
}, onMouseEnter: () => (this.isHovered = true), onMouseLeave: () => (this.isHovered = false), style: this.optionStyle, "data-index": this.index, onClick: event => this.handleClick(this.option, this.isSelected, event) }, h("div", { key: 'ca5dc0033231ab204a8688f98453742cdbde7d26', class: "sd-select__option-group__label-wrapper" }, this.useCheckbox && (h("sd-checkbox", { key: 'bba6cb9fe649f6eda82ba287f73d0142e02c53c2', value: this.isSelected, disabled: this.option.disabled, onClick: e => {
|
|
59
59
|
e.preventDefault();
|
|
60
60
|
this.handleClick(this.option, this.isSelected, e);
|
|
61
|
-
} })), h("span", { key: '
|
|
61
|
+
} })), h("span", { key: '7d03c080b7f5b92881389bfec787015a6ac55fa1', class: "sd-select__option-group-label" }, this.option.label), this.useIndicator && this.option.type !== 'item' && (h("span", { key: '7066453f92eac7549569db6854e3dc32515d80b9', class: "sd-select__option-group__count-indicator" }, `(${this.countInfo?.selectedCount}/${this.countInfo?.totalCount})`)))));
|
|
62
62
|
}
|
|
63
63
|
};
|
|
64
64
|
SdSelectOptionGroup.style = sdSelectOptionGroupCss();
|
|
@@ -39,7 +39,7 @@ const SdToggleButton = class {
|
|
|
39
39
|
this.change.emit(newValue);
|
|
40
40
|
};
|
|
41
41
|
render() {
|
|
42
|
-
return (h("label", { key: '
|
|
42
|
+
return (h("label", { key: '65bd84349d293e027829dc8a7e80c1bbee123b25', class: this.buttonClasses, "aria-label": this.label || 'toggle button' }, this.label, h("input", { key: 'f03c1a1dd64d608766c0996539cb6422efa99ef7', style: { display: 'none' }, type: "checkbox", onInput: this.handleChange })));
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
45
|
SdToggleButton.style = sdToggleButtonCss();
|
|
@@ -35,7 +35,7 @@ const SdToggle = class {
|
|
|
35
35
|
this.change.emit(newValue);
|
|
36
36
|
};
|
|
37
37
|
render() {
|
|
38
|
-
return (h("label", { key: '
|
|
38
|
+
return (h("label", { key: '96e1e542413ede219dddf64f80112c1267973507', "aria-label": this.label || 'toggle', class: this.toggleClasses }, h("input", { key: '301ea8516df99c351fc7162ef80db112778d55ad', type: "checkbox", checked: this.value, disabled: this.disabled, onInput: this.handleChange }), this.label && h("span", { key: '7382cf219c544aec9169a69a07856948512d2ac1', class: "sd-toggle__label" }, this.label), h("div", { key: 'f9d6c5d4e94f12a64c242026974d71b8b8b140c7', class: "sd-toggle__track" }, h("div", { key: '2798217a6e9766c0e6d3cc6ed333c54a0106d978', class: "sd-toggle__thumb" }))));
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
SdToggle.style = sdToggleCss();
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/* @ts-self-types="./index.d.ts" */
|
|
2
|
+
let urlAlphabet =
|
|
3
|
+
'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';
|
|
4
|
+
let nanoid = (size = 21) => {
|
|
5
|
+
let id = '';
|
|
6
|
+
let i = size | 0;
|
|
7
|
+
while (i--) {
|
|
8
|
+
id += urlAlphabet[(Math.random() * 64) | 0];
|
|
9
|
+
}
|
|
10
|
+
return id
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
class SelectKeyboardNavigation {
|
|
14
|
+
isSearchable;
|
|
15
|
+
filteredOptions;
|
|
16
|
+
constructor(isSearchable, filteredOptions) {
|
|
17
|
+
this.isSearchable = isSearchable;
|
|
18
|
+
this.filteredOptions = filteredOptions;
|
|
19
|
+
}
|
|
20
|
+
getNavigationBounds() {
|
|
21
|
+
return {
|
|
22
|
+
minIndex: this.isSearchable ? -1 : 0,
|
|
23
|
+
maxIndex: this.filteredOptions.length - 1,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
getNextIndex(currentIndex, direction) {
|
|
27
|
+
const { minIndex, maxIndex } = this.getNavigationBounds();
|
|
28
|
+
if (direction === 'ArrowUp') {
|
|
29
|
+
return currentIndex > minIndex ? currentIndex - 1 : maxIndex;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
return currentIndex < maxIndex ? currentIndex + 1 : minIndex;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export { SelectKeyboardNavigation as S, nanoid as n };
|