@operato/styles 10.16.2 โ†’ 10.23.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 CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [10.23.0](https://github.com/hatiolab/operato/compare/v10.22.0...v10.23.0) (2026-09-24)
7
+
8
+
9
+ ### :sparkles: Styling
10
+
11
+ * **property-panel,input,styles:** quiet inspector, one vocabulary in both schemes ([40e67e9](https://github.com/hatiolab/operato/commit/40e67e9aced202151a4f2f8d7ef96ec840defc18))
12
+
13
+
14
+ ### :bug: Bug Fix
15
+
16
+ * **styles:** word choices in a property radio row keep their width and wrap ([8554a3d](https://github.com/hatiolab/operato/commit/8554a3d2151859c3da57250e4520de91a582f2df))
17
+
18
+
19
+ ### :rocket: New Features
20
+
21
+ * **font:** specimen cards for the font list; themeable danger buttons ([e3cafc0](https://github.com/hatiolab/operato/commit/e3cafc03eec6e5cb9e76ae640c05dd9129e4893f))
22
+
23
+
24
+
6
25
  ### [10.16.2](https://github.com/hatiolab/operato/compare/v10.16.1...v10.16.2) (2026-09-18)
7
26
 
8
27
  **Note:** Version bump only for package @operato/styles
@@ -1 +1,6 @@
1
+ /**
2
+ * The padding editor: four numbers around a small box, laid out as the box they describe.
3
+ * Drawn in CSS from the scheme's tokens (the old version was a PNG sprite of brown blocks that
4
+ * ignored the theme entirely).
5
+ */
1
6
  export declare const BoxPaddingEditorStyles: import("lit").CSSResult;
@@ -1,99 +1,72 @@
1
- import { css, unsafeCSS } from 'lit';
2
- const ICON_PROPERTIES_PADDING = new URL('../../icons/icon-properties-padding.png', import.meta.url).href;
1
+ import { css } from 'lit';
2
+ /**
3
+ * The padding editor: four numbers around a small box, laid out as the box they describe.
4
+ * Drawn in CSS from the scheme's tokens (the old version was a PNG sprite of brown blocks that
5
+ * ignored the theme entirely).
6
+ */
3
7
  export const BoxPaddingEditorStyles = css `
4
- :host {
5
- --url-icon-properties-padding: url(${unsafeCSS(ICON_PROPERTIES_PADDING)});
6
- }
7
-
8
+ /* The editor is the four numbers, not a slab: no fill or frame on the whole block. */
9
+ .property-grid > .box-padding.custom-editor,
8
10
  .box-padding {
9
- width: 100%;
10
- }
11
-
12
- .box-padding td {
13
- background: var(--url-icon-properties-padding) 50% 0 no-repeat;
14
- }
15
-
16
- .box-padding tr:nth-child(1),
17
- .box-padding tr:nth-child(3) {
18
- height: 20px;
19
- }
20
-
21
- .box-padding tr td:nth-child(1),
22
- .box-padding tr td:nth-child(3) {
23
- width: 18px;
24
- }
25
-
26
- .box-padding .slide1 {
27
- background-position: 0 0;
28
- }
29
-
30
- .box-padding .slide2 {
31
- background-position: 50% -40px;
32
- background-color: rgba(69, 46, 41, 0.2);
33
- }
34
-
35
- .box-padding .slide3 {
36
- background-position: 100% -440px;
37
- }
38
-
39
- .box-padding .slide4 {
40
- background-position: 0 -360px;
41
- background-color: rgba(69, 46, 41, 0.2);
42
- }
43
-
44
- .box-padding .slide5 {
45
- background: none;
46
- text-align: center;
47
- }
48
-
49
- .box-padding .slide6 {
50
- background-position: 100% -160px;
51
- background-color: rgba(69, 46, 41, 0.2);
52
- }
53
-
54
- .box-padding .slide7 {
55
- background-position: 0 100%;
56
- }
57
-
58
- .box-padding .slide8 {
59
- background-position: 50% -320px;
60
- background-color: rgba(69, 46, 41, 0.2);
61
- }
62
-
63
- .box-padding .slide9 {
64
- background-position: 0 0px;
11
+ background: transparent;
12
+ border: 0;
13
+ box-shadow: none;
14
+ min-height: 0;
15
+ display: grid;
16
+ grid-template-columns: 1fr auto 1fr;
17
+ grid-template-rows: auto auto auto;
18
+ grid-template-areas:
19
+ '. top .'
20
+ 'left inner right'
21
+ '. bottom .';
22
+ gap: 2px 4px;
23
+ align-items: center;
24
+ justify-items: center;
25
+ padding: 0;
26
+ }
27
+
28
+ .box-padding .inner {
29
+ grid-area: inner;
30
+ width: 34px;
31
+ height: 18px;
32
+ border-radius: 3px;
33
+ border: 1px dashed var(--md-sys-color-outline);
34
+ opacity: 0.7;
65
35
  }
66
36
 
67
37
  .box-padding input {
68
- background-color: transparent;
69
- width: 35px;
70
- margin: 0px;
71
- padding: 0px;
72
- clear: both;
73
- float: initial;
74
- border: 1px solid #fff;
75
- border-width: 0 0 1px 0;
38
+ width: 38px;
39
+ min-height: 22px;
40
+ padding: 1px 4px;
76
41
  text-align: right;
77
- font-size: 14px;
42
+ font-size: 0.76rem;
43
+ font-variant-numeric: tabular-nums;
44
+ color: var(--md-sys-color-on-surface);
45
+ background-color: var(--property-input-background, var(--md-sys-color-surface-container-high));
46
+ border: 1px solid transparent;
47
+ border-radius: 6px;
48
+ outline: none;
78
49
  }
79
50
 
80
- .slide5 input:nth-child(1),
81
- .slide5 input:nth-child(4) {
82
- display: block;
83
- margin: auto;
51
+ .box-padding input:hover {
52
+ border-color: var(--md-sys-color-outline-variant);
84
53
  }
85
54
 
86
- .slide5 input:nth-child(2) {
87
- float: left;
55
+ .box-padding input:focus {
56
+ border-color: var(--md-sys-color-primary);
88
57
  }
89
58
 
90
- .slide5 input:nth-child(3) {
91
- float: right;
92
- margin-top: -25px;
59
+ .box-padding input.top {
60
+ grid-area: top;
93
61
  }
94
-
95
- .slide5 input:nth-child(4) {
96
- margin-top: -5px;
62
+ .box-padding input.left {
63
+ grid-area: left;
64
+ }
65
+ .box-padding input.right {
66
+ grid-area: right;
67
+ }
68
+ .box-padding input.bottom {
69
+ grid-area: bottom;
97
70
  }
98
71
  `;
99
72
  //# sourceMappingURL=box-padding-editor-styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"box-padding-editor-styles.js","sourceRoot":"","sources":["../../src/box-padding-editor-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAEpC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,yCAAyC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAExG,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAA;;yCAEA,SAAS,CAAC,uBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6F1E,CAAA","sourcesContent":["import { css, unsafeCSS } from 'lit'\n\nconst ICON_PROPERTIES_PADDING = new URL('../../icons/icon-properties-padding.png', import.meta.url).href\n\nexport const BoxPaddingEditorStyles = css`\n :host {\n --url-icon-properties-padding: url(${unsafeCSS(ICON_PROPERTIES_PADDING)});\n }\n\n .box-padding {\n width: 100%;\n }\n\n .box-padding td {\n background: var(--url-icon-properties-padding) 50% 0 no-repeat;\n }\n\n .box-padding tr:nth-child(1),\n .box-padding tr:nth-child(3) {\n height: 20px;\n }\n\n .box-padding tr td:nth-child(1),\n .box-padding tr td:nth-child(3) {\n width: 18px;\n }\n\n .box-padding .slide1 {\n background-position: 0 0;\n }\n\n .box-padding .slide2 {\n background-position: 50% -40px;\n background-color: rgba(69, 46, 41, 0.2);\n }\n\n .box-padding .slide3 {\n background-position: 100% -440px;\n }\n\n .box-padding .slide4 {\n background-position: 0 -360px;\n background-color: rgba(69, 46, 41, 0.2);\n }\n\n .box-padding .slide5 {\n background: none;\n text-align: center;\n }\n\n .box-padding .slide6 {\n background-position: 100% -160px;\n background-color: rgba(69, 46, 41, 0.2);\n }\n\n .box-padding .slide7 {\n background-position: 0 100%;\n }\n\n .box-padding .slide8 {\n background-position: 50% -320px;\n background-color: rgba(69, 46, 41, 0.2);\n }\n\n .box-padding .slide9 {\n background-position: 0 0px;\n }\n\n .box-padding input {\n background-color: transparent;\n width: 35px;\n margin: 0px;\n padding: 0px;\n clear: both;\n float: initial;\n border: 1px solid #fff;\n border-width: 0 0 1px 0;\n text-align: right;\n font-size: 14px;\n }\n\n .slide5 input:nth-child(1),\n .slide5 input:nth-child(4) {\n display: block;\n margin: auto;\n }\n\n .slide5 input:nth-child(2) {\n float: left;\n }\n\n .slide5 input:nth-child(3) {\n float: right;\n margin-top: -25px;\n }\n\n .slide5 input:nth-child(4) {\n margin-top: -5px;\n }\n`\n"]}
1
+ {"version":3,"file":"box-padding-editor-styles.js","sourceRoot":"","sources":["../../src/box-padding-editor-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgExC,CAAA","sourcesContent":["import { css } from 'lit'\n\n/**\n * The padding editor: four numbers around a small box, laid out as the box they describe.\n * Drawn in CSS from the scheme's tokens (the old version was a PNG sprite of brown blocks that\n * ignored the theme entirely).\n */\nexport const BoxPaddingEditorStyles = css`\n /* The editor is the four numbers, not a slab: no fill or frame on the whole block. */\n .property-grid > .box-padding.custom-editor,\n .box-padding {\n background: transparent;\n border: 0;\n box-shadow: none;\n min-height: 0;\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n grid-template-rows: auto auto auto;\n grid-template-areas:\n '. top .'\n 'left inner right'\n '. bottom .';\n gap: 2px 4px;\n align-items: center;\n justify-items: center;\n padding: 0;\n }\n\n .box-padding .inner {\n grid-area: inner;\n width: 34px;\n height: 18px;\n border-radius: 3px;\n border: 1px dashed var(--md-sys-color-outline);\n opacity: 0.7;\n }\n\n .box-padding input {\n width: 38px;\n min-height: 22px;\n padding: 1px 4px;\n text-align: right;\n font-size: 0.76rem;\n font-variant-numeric: tabular-nums;\n color: var(--md-sys-color-on-surface);\n background-color: var(--property-input-background, var(--md-sys-color-surface-container-high));\n border: 1px solid transparent;\n border-radius: 6px;\n outline: none;\n }\n\n .box-padding input:hover {\n border-color: var(--md-sys-color-outline-variant);\n }\n\n .box-padding input:focus {\n border-color: var(--md-sys-color-primary);\n }\n\n .box-padding input.top {\n grid-area: top;\n }\n .box-padding input.left {\n grid-area: left;\n }\n .box-padding input.right {\n grid-area: right;\n }\n .box-padding input.bottom {\n grid-area: bottom;\n }\n`\n"]}
@@ -157,32 +157,37 @@ export const ButtonContainerStyles = css `
157
157
  [danger],
158
158
  button[danger],
159
159
  md-assist-chip[danger] {
160
- --md-assist-chip-outline-color: var(--md-sys-color-error);
161
- --md-assist-chip-elevated-container-color: var(--md-sys-color-error);
160
+ /*
161
+ * The destructive fill. The scheme's error tokens are the default; a theme may hand in its
162
+ * own pair - in a dark scheme the error tone is a pastel, and a pastel plate with dark red
163
+ * figures reads as a sticker rather than a button.
164
+ */
165
+ --md-assist-chip-outline-color: var(--danger-button-background, var(--md-sys-color-error));
166
+ --md-assist-chip-elevated-container-color: var(--danger-button-background, var(--md-sys-color-error));
162
167
 
163
- --md-assist-chip-label-text-color: var(--md-sys-color-on-error);
164
- --md-assist-chip-leading-icon-color: var(--md-sys-color-on-error);
168
+ --md-assist-chip-label-text-color: var(--danger-button-color, var(--md-sys-color-on-error));
169
+ --md-assist-chip-leading-icon-color: var(--danger-button-color, var(--md-sys-color-on-error));
165
170
 
166
- --md-assist-chip-hover-label-text-color: var(--md-sys-color-error);
167
- --md-assist-chip-hover-leading-icon-color: var(--md-sys-color-error);
171
+ --md-assist-chip-hover-label-text-color: var(--danger-button-hover-color, var(--md-sys-color-error));
172
+ --md-assist-chip-hover-leading-icon-color: var(--danger-button-hover-color, var(--md-sys-color-error));
168
173
 
169
- color: var(--md-sys-color-on-error);
170
- background-color: var(--md-sys-color-error);
171
- border-color: var(--md-sys-color-error);
174
+ color: var(--danger-button-color, var(--md-sys-color-on-error));
175
+ background-color: var(--danger-button-background, var(--md-sys-color-error));
176
+ border-color: var(--danger-button-background, var(--md-sys-color-error));
172
177
 
173
178
  md-icon {
174
- color: var(--md-sys-color-on-error);
179
+ color: var(--danger-button-color, var(--md-sys-color-on-error));
175
180
  }
176
181
 
177
182
  &:hover {
178
- --md-assist-chip-outline-color: var(--md-sys-color-error);
179
- --md-assist-chip-elevated-container-color: var(--md-sys-color-on-error);
183
+ --md-assist-chip-outline-color: var(--danger-button-background, var(--md-sys-color-error));
184
+ --md-assist-chip-elevated-container-color: var(--danger-button-hover-background, var(--md-sys-color-on-error));
180
185
 
181
- --md-assist-chip-label-text-color: var(--md-sys-color-error);
182
- --md-assist-chip-leading-icon-color: var(--md-sys-color-error);
186
+ --md-assist-chip-label-text-color: var(--danger-button-hover-color, var(--md-sys-color-error));
187
+ --md-assist-chip-leading-icon-color: var(--danger-button-hover-color, var(--md-sys-color-error));
183
188
 
184
- color: var(--md-sys-color-error);
185
- background-color: var(--md-sys-color-on-error);
189
+ color: var(--danger-button-hover-color, var(--md-sys-color-error));
190
+ background-color: var(--danger-button-hover-background, var(--md-sys-color-on-error));
186
191
  }
187
192
  }
188
193
 
@@ -1 +1 @@
1
- {"version":3,"file":"button-container-styles.js","sourceRoot":"","sources":["../../src/button-container-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,OAAO,EAAE,iCAAiC,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAExG,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;;;;;;;;;;;;;2CAaG,iBAAiB,CAAC,yBAAyB,CAAC;6CAC1C,iBAAiB,CAAC,yBAAyB,CAAC;yCAChD,iBAAiB,CAAC,yBAAyB,CAAC;6CACxC,iBAAiB,CAAC,yBAAyB,CAAC;iDACxC,iBAAiB,CAAC,yBAAyB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;cAyB/E,YAAY,CAAC,yBAAyB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAoDtC,YAAY,CAAC,yBAAyB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA2C5C,YAAY,CAAC,yBAAyB,CAAC;UACvC,iBAAiB,CAAC,yBAAyB,EAAE,iCAAiC,CAAC,kBAAkB,CAAC;;;;;;UAMlG,YAAY,CAAC,yBAAyB,CAAC;UACvC,iBAAiB,CAAC,yBAAyB,EAAE,iCAAiC,CAAC,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwE3G,CAAA","sourcesContent":["import { css } from 'lit'\n\nimport { ACTION_HEIGHT_PLATFORM_EXCEPTIONS, actionHeight, suiteActionHeight } from './action-heights.js'\n\nexport const ButtonContainerStyles = css`\n .button-container {\n display: flex;\n margin-left: auto;\n padding: var(--spacing-small);\n gap: var(--spacing-small);\n\n text-transform: capitalize;\n\n /*\n * In the operato products a Material button in this bar takes the bar's height. Elsewhere the\n * declaration is empty and Material keeps its own (ADR-0060 decision 6-1).\n */\n --md-filled-button-container-height: ${suiteActionHeight('--context-action-height')};\n --md-outlined-button-container-height: ${suiteActionHeight('--context-action-height')};\n --md-text-button-container-height: ${suiteActionHeight('--context-action-height')};\n --md-elevated-button-container-height: ${suiteActionHeight('--context-action-height')};\n --md-filled-tonal-button-container-height: ${suiteActionHeight('--context-action-height')};\n }\n\n /*\n * ๋™์ž‘ ๋ฒ„ํŠผ โ€” ํŽ˜์ด์ง€์˜ ๋ฐœํ–‰ยท์ทจ์†Œยท๋‚ด๋ณด๋‚ด๊ธฐ.\n *\n * โ”€โ”€ ์™œ ์นฉ์ด ์•„๋‹ˆ๋ผ button ์ธ๊ฐ€ (2026-08-31) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n * ํ•œ๋™์•ˆ ์ด ์ž๋ฆฌ๋ฅผ md-assist-chip ์œผ๋กœ ๊ทธ๋ ธ๋‹ค. ๋จธํ‹ฐ๋ฆฌ์–ผ ๋ฒ„ํŠผ์ด ๊ธฐ๋ณธ 40px ์— ์ขŒ์šฐ ์—ฌ๋ฐฑ 24px ์ด๋ผ\n * ๋ฒ„ํŠผ์ด ์„œ๋„› ๋†“์ด๋Š” ํˆด๋ฐ”์— ํฌ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์นฉ์€ ๋‘ ๊ฐ€์ง€๋ฅผ ์žƒ๋Š”๋‹ค.\n *\n * ๋œป ์นฉ์€ ใ€Œ๊ณ ๋ฅผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒใ€์ด๊ณ  ๋ฒ„ํŠผ์€ ใ€Œํ•˜๋Š” ๊ฒƒใ€์ด๋‹ค. ํ™”๋ฉด ๋‚ญ๋…๊ธฐ๊ฐ€ ๊ทธ๋Œ€๋กœ ์ฝ๋Š”๋‹ค\n * ์œ„๊ณ„ ์นฉ์—๋Š” ๋‹จ๊ณ„ ๊ตฌ๋ถ„์ด ์—†๋‹ค โ€” ใ€Œ๋ฐœํ–‰ใ€๊ณผ ใ€Œ์ทจ์†Œใ€๊ฐ€ ๋˜‘๊ฐ™์ด ๋ณด์ธ๋‹ค\n *\n * ๋‘ ๋ฒˆ์งธ๊ฐ€ ํฌ๋‹ค. ์ด ๋ถ€ํ’ˆ์€ emphasis: { raised, danger } ๋ฅผ ์ด๋ฏธ ๋ฐ›๊ณ  ์žˆ๋Š”๋ฐ, ์นฉ์œผ๋กœ๋Š” ๊ทธ ๋œป์„\n * ๊ทธ๋ฆฌ์ง€ ๋ชปํ•ด raised ๊ฐ€ ๊ทธ๋ฆผ์ž ํ•˜๋‚˜๋กœ ๋๋‚ฌ๋‹ค. ๋ฐ›์€ ๊ฒƒ์„ ๊ทธ๋ฆฌ์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ด ๋ฌธ์ œ์˜€๋‹ค.\n *\n * ํฌ๊ธฐ๋Š” ํ† ํฐ์œผ๋กœ ์ •ํ•œ๋‹ค โ€” ๋จธํ‹ฐ๋ฆฌ์–ผ ๊ธฐ๋ณธ๊ฐ’์— ๋งค์ด์ง€ ์•Š์œผ๋ฉด ์ž‘๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.\n */\n button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-small);\n\n box-sizing: border-box;\n height: ${actionHeight('--context-action-height')};\n padding: 0 var(--spacing-large);\n border: 1px solid var(--md-sys-color-outline-variant);\n border-radius: var(--button-border-radius, var(--md-sys-shape-corner-small));\n\n background-color: var(--button-background-color, var(--md-sys-color-surface-container-lowest));\n color: var(--button-color, var(--md-sys-color-on-surface));\n\n font-family: inherit;\n font-size: var(--fontsize-small);\n /* ๋ณธ๋ฌธ๊ณผ ๊ฐ™์€ ๊ตต๊ธฐ๋ฉด ๋ฌธ์žฅ์ธ์ง€ ๋ฒ„ํŠผ์ธ์ง€ ๊ตฌ๋ณ„๋˜์ง€ ์•Š๋Š”๋‹ค. */\n font-weight: 600;\n line-height: 1;\n text-wrap: nowrap;\n\n cursor: pointer;\n transition:\n background-color 0.12s,\n border-color 0.12s,\n color 0.12s;\n\n md-icon {\n --md-icon-size: var(--icon-size-small);\n\n flex: none;\n /* ์•„์ด์ฝ˜๋งŒ ๊ฐ•์กฐ์ƒ‰ โ€” ๋ฒ„ํŠผ ์ „์ฒด๋ฅผ ์น ํ•˜๋ฉด ์—ฌ๋Ÿฟ ๋‚˜๋ž€ํžˆ ๋†“์˜€์„ ๋•Œ ํ™”๋ฉด์ด ์‹œ๋„๋Ÿฝ๋‹ค. */\n color: var(--md-sys-color-primary);\n }\n\n &:hover {\n background-color: var(--md-sys-color-secondary-container);\n color: var(--md-sys-color-on-secondary-container);\n border-color: var(--md-sys-color-secondary);\n }\n\n /*\n * ํ‚ค๋ณด๋“œ๋กœ ์™”์„ ๋•Œ. :focus ๊ฐ€ ์•„๋‹ˆ๋ผ :focus-visible โ€” ๋งˆ์šฐ์Šค๋กœ ๋ˆŒ๋Ÿฌ๋„ ํ…Œ๋‘๋ฆฌ๊ฐ€ ๋‚จ์œผ๋ฉด\n * ์‚ฌ์šฉ์ž๋Š” ใ€Œ๋ˆŒ๋ฆฐ ์ฑ„๋กœ ์žˆ๋‹คใ€๋กœ ์ฝ๋Š”๋‹ค.\n */\n &:focus-visible {\n outline: 2px solid var(--md-sys-color-primary);\n outline-offset: 2px;\n }\n\n &:disabled {\n opacity: 0.38;\n cursor: default;\n pointer-events: none;\n }\n\n /* ์•„์ด์ฝ˜๋งŒ ์žˆ๋Š” ๋ฒ„ํŠผ โ€” ์ •์‚ฌ๊ฐ. ๊ธ€์ž๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ถ€๋ฅด๋Š” ์ชฝ์ด title ์„ ๋ถ™์ธ๋‹ค. */\n &[icon-only] {\n width: ${actionHeight('--context-action-height')};\n padding: 0;\n }\n }\n\n /*\n * ์ฃผ ๋™์ž‘ โ€” ํ™”๋ฉด์—์„œ ํ•˜๋‚˜๋งŒ. emphasis: { raised: true } ๋กœ ์„ ์–ธํ•œ๋‹ค.\n * ๋‘˜ ์ด์ƒ์„ ์ด๋ ‡๊ฒŒ ๋‘๋ฉด ์–ด๋А ๊ฒƒ๋„ ์ฃผ ๋™์ž‘์ด ์•„๋‹ˆ๊ฒŒ ๋œ๋‹ค.\n */\n button[raised],\n md-assist-chip[raised] {\n --md-assist-chip-outline-color: var(--md-sys-color-primary);\n --md-assist-chip-elevated-container-color: var(--md-sys-color-primary);\n --md-assist-chip-label-text-color: var(--md-sys-color-on-primary);\n --md-assist-chip-leading-icon-color: var(--md-sys-color-on-primary);\n\n background-color: var(--md-sys-color-primary);\n border-color: var(--md-sys-color-primary);\n color: var(--md-sys-color-on-primary);\n\n md-icon {\n color: var(--md-sys-color-on-primary);\n }\n\n /* ์ฑ„์šด ๋ฒ„ํŠผ์€ ์ƒ‰์„ ๋ฐ”๊พธ์ง€ ์•Š๊ณ  ํ•œ ๋‹จ๊ณ„ ์–ด๋‘ก๊ฒŒ โ€” ํฐ ๊ธ€์ž๊ฐ€ ๊ณ„์† ์ฝํ˜€์•ผ ํ•œ๋‹ค. */\n &:hover {\n background-color: color-mix(in srgb, var(--md-sys-color-primary) 88%, black);\n border-color: color-mix(in srgb, var(--md-sys-color-primary) 88%, black);\n color: var(--md-sys-color-on-primary);\n\n md-icon {\n color: var(--md-sys-color-on-primary);\n }\n }\n }\n\n /*\n * With a finger. The platform keeps 44px; the operato products use one height for mouse and finger\n * (their suite value). A screen that raises --context-action-height still wins through max().\n */\n @media (pointer: coarse) {\n button {\n height: max(\n ${actionHeight('--context-action-height')},\n ${suiteActionHeight('--context-action-height', ACTION_HEIGHT_PLATFORM_EXCEPTIONS.contextActionTouch)}\n );\n }\n\n button[icon-only] {\n width: max(\n ${actionHeight('--context-action-height')},\n ${suiteActionHeight('--context-action-height', ACTION_HEIGHT_PLATFORM_EXCEPTIONS.contextActionTouch)}\n );\n }\n }\n\n [filled] {\n font-variation-settings: 'FILL' 1;\n }\n\n [danger],\n button[danger],\n md-assist-chip[danger] {\n --md-assist-chip-outline-color: var(--md-sys-color-error);\n --md-assist-chip-elevated-container-color: var(--md-sys-color-error);\n\n --md-assist-chip-label-text-color: var(--md-sys-color-on-error);\n --md-assist-chip-leading-icon-color: var(--md-sys-color-on-error);\n\n --md-assist-chip-hover-label-text-color: var(--md-sys-color-error);\n --md-assist-chip-hover-leading-icon-color: var(--md-sys-color-error);\n\n color: var(--md-sys-color-on-error);\n background-color: var(--md-sys-color-error);\n border-color: var(--md-sys-color-error);\n\n md-icon {\n color: var(--md-sys-color-on-error);\n }\n\n &:hover {\n --md-assist-chip-outline-color: var(--md-sys-color-error);\n --md-assist-chip-elevated-container-color: var(--md-sys-color-on-error);\n\n --md-assist-chip-label-text-color: var(--md-sys-color-error);\n --md-assist-chip-leading-icon-color: var(--md-sys-color-error);\n\n color: var(--md-sys-color-error);\n background-color: var(--md-sys-color-on-error);\n }\n }\n\n select,\n input[type='text'] {\n background-color: var(--button-background-color, var(--md-sys-color-secondary-container));\n border: 1px solid var(--md-sys-color-outline);\n border-radius: var(--button-border-radius);\n padding: 0 var(--spacing-tiny);\n\n font-size: var(--fontsize-default);\n color: var(--button-color, var(--md-sys-color-on-secondary-container));\n }\n\n [filler] {\n flex: 1;\n }\n\n @media screen and (max-width: 460px) {\n .button-container {\n padding: 0;\n gap: 0;\n }\n\n button,\n md-icon {\n border-radius: 0;\n }\n\n button:not(:last-child),\n md-icon:not(:last-child) {\n border-right-width: 0;\n }\n }\n`\n"]}
1
+ {"version":3,"file":"button-container-styles.js","sourceRoot":"","sources":["../../src/button-container-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,OAAO,EAAE,iCAAiC,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAExG,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;;;;;;;;;;;;;2CAaG,iBAAiB,CAAC,yBAAyB,CAAC;6CAC1C,iBAAiB,CAAC,yBAAyB,CAAC;yCAChD,iBAAiB,CAAC,yBAAyB,CAAC;6CACxC,iBAAiB,CAAC,yBAAyB,CAAC;iDACxC,iBAAiB,CAAC,yBAAyB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;cAyB/E,YAAY,CAAC,yBAAyB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAoDtC,YAAY,CAAC,yBAAyB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA2C5C,YAAY,CAAC,yBAAyB,CAAC;UACvC,iBAAiB,CAAC,yBAAyB,EAAE,iCAAiC,CAAC,kBAAkB,CAAC;;;;;;UAMlG,YAAY,CAAC,yBAAyB,CAAC;UACvC,iBAAiB,CAAC,yBAAyB,EAAE,iCAAiC,CAAC,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6E3G,CAAA","sourcesContent":["import { css } from 'lit'\n\nimport { ACTION_HEIGHT_PLATFORM_EXCEPTIONS, actionHeight, suiteActionHeight } from './action-heights.js'\n\nexport const ButtonContainerStyles = css`\n .button-container {\n display: flex;\n margin-left: auto;\n padding: var(--spacing-small);\n gap: var(--spacing-small);\n\n text-transform: capitalize;\n\n /*\n * In the operato products a Material button in this bar takes the bar's height. Elsewhere the\n * declaration is empty and Material keeps its own (ADR-0060 decision 6-1).\n */\n --md-filled-button-container-height: ${suiteActionHeight('--context-action-height')};\n --md-outlined-button-container-height: ${suiteActionHeight('--context-action-height')};\n --md-text-button-container-height: ${suiteActionHeight('--context-action-height')};\n --md-elevated-button-container-height: ${suiteActionHeight('--context-action-height')};\n --md-filled-tonal-button-container-height: ${suiteActionHeight('--context-action-height')};\n }\n\n /*\n * ๋™์ž‘ ๋ฒ„ํŠผ โ€” ํŽ˜์ด์ง€์˜ ๋ฐœํ–‰ยท์ทจ์†Œยท๋‚ด๋ณด๋‚ด๊ธฐ.\n *\n * โ”€โ”€ ์™œ ์นฉ์ด ์•„๋‹ˆ๋ผ button ์ธ๊ฐ€ (2026-08-31) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n * ํ•œ๋™์•ˆ ์ด ์ž๋ฆฌ๋ฅผ md-assist-chip ์œผ๋กœ ๊ทธ๋ ธ๋‹ค. ๋จธํ‹ฐ๋ฆฌ์–ผ ๋ฒ„ํŠผ์ด ๊ธฐ๋ณธ 40px ์— ์ขŒ์šฐ ์—ฌ๋ฐฑ 24px ์ด๋ผ\n * ๋ฒ„ํŠผ์ด ์„œ๋„› ๋†“์ด๋Š” ํˆด๋ฐ”์— ํฌ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์นฉ์€ ๋‘ ๊ฐ€์ง€๋ฅผ ์žƒ๋Š”๋‹ค.\n *\n * ๋œป ์นฉ์€ ใ€Œ๊ณ ๋ฅผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒใ€์ด๊ณ  ๋ฒ„ํŠผ์€ ใ€Œํ•˜๋Š” ๊ฒƒใ€์ด๋‹ค. ํ™”๋ฉด ๋‚ญ๋…๊ธฐ๊ฐ€ ๊ทธ๋Œ€๋กœ ์ฝ๋Š”๋‹ค\n * ์œ„๊ณ„ ์นฉ์—๋Š” ๋‹จ๊ณ„ ๊ตฌ๋ถ„์ด ์—†๋‹ค โ€” ใ€Œ๋ฐœํ–‰ใ€๊ณผ ใ€Œ์ทจ์†Œใ€๊ฐ€ ๋˜‘๊ฐ™์ด ๋ณด์ธ๋‹ค\n *\n * ๋‘ ๋ฒˆ์งธ๊ฐ€ ํฌ๋‹ค. ์ด ๋ถ€ํ’ˆ์€ emphasis: { raised, danger } ๋ฅผ ์ด๋ฏธ ๋ฐ›๊ณ  ์žˆ๋Š”๋ฐ, ์นฉ์œผ๋กœ๋Š” ๊ทธ ๋œป์„\n * ๊ทธ๋ฆฌ์ง€ ๋ชปํ•ด raised ๊ฐ€ ๊ทธ๋ฆผ์ž ํ•˜๋‚˜๋กœ ๋๋‚ฌ๋‹ค. ๋ฐ›์€ ๊ฒƒ์„ ๊ทธ๋ฆฌ์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ด ๋ฌธ์ œ์˜€๋‹ค.\n *\n * ํฌ๊ธฐ๋Š” ํ† ํฐ์œผ๋กœ ์ •ํ•œ๋‹ค โ€” ๋จธํ‹ฐ๋ฆฌ์–ผ ๊ธฐ๋ณธ๊ฐ’์— ๋งค์ด์ง€ ์•Š์œผ๋ฉด ์ž‘๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.\n */\n button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-small);\n\n box-sizing: border-box;\n height: ${actionHeight('--context-action-height')};\n padding: 0 var(--spacing-large);\n border: 1px solid var(--md-sys-color-outline-variant);\n border-radius: var(--button-border-radius, var(--md-sys-shape-corner-small));\n\n background-color: var(--button-background-color, var(--md-sys-color-surface-container-lowest));\n color: var(--button-color, var(--md-sys-color-on-surface));\n\n font-family: inherit;\n font-size: var(--fontsize-small);\n /* ๋ณธ๋ฌธ๊ณผ ๊ฐ™์€ ๊ตต๊ธฐ๋ฉด ๋ฌธ์žฅ์ธ์ง€ ๋ฒ„ํŠผ์ธ์ง€ ๊ตฌ๋ณ„๋˜์ง€ ์•Š๋Š”๋‹ค. */\n font-weight: 600;\n line-height: 1;\n text-wrap: nowrap;\n\n cursor: pointer;\n transition:\n background-color 0.12s,\n border-color 0.12s,\n color 0.12s;\n\n md-icon {\n --md-icon-size: var(--icon-size-small);\n\n flex: none;\n /* ์•„์ด์ฝ˜๋งŒ ๊ฐ•์กฐ์ƒ‰ โ€” ๋ฒ„ํŠผ ์ „์ฒด๋ฅผ ์น ํ•˜๋ฉด ์—ฌ๋Ÿฟ ๋‚˜๋ž€ํžˆ ๋†“์˜€์„ ๋•Œ ํ™”๋ฉด์ด ์‹œ๋„๋Ÿฝ๋‹ค. */\n color: var(--md-sys-color-primary);\n }\n\n &:hover {\n background-color: var(--md-sys-color-secondary-container);\n color: var(--md-sys-color-on-secondary-container);\n border-color: var(--md-sys-color-secondary);\n }\n\n /*\n * ํ‚ค๋ณด๋“œ๋กœ ์™”์„ ๋•Œ. :focus ๊ฐ€ ์•„๋‹ˆ๋ผ :focus-visible โ€” ๋งˆ์šฐ์Šค๋กœ ๋ˆŒ๋Ÿฌ๋„ ํ…Œ๋‘๋ฆฌ๊ฐ€ ๋‚จ์œผ๋ฉด\n * ์‚ฌ์šฉ์ž๋Š” ใ€Œ๋ˆŒ๋ฆฐ ์ฑ„๋กœ ์žˆ๋‹คใ€๋กœ ์ฝ๋Š”๋‹ค.\n */\n &:focus-visible {\n outline: 2px solid var(--md-sys-color-primary);\n outline-offset: 2px;\n }\n\n &:disabled {\n opacity: 0.38;\n cursor: default;\n pointer-events: none;\n }\n\n /* ์•„์ด์ฝ˜๋งŒ ์žˆ๋Š” ๋ฒ„ํŠผ โ€” ์ •์‚ฌ๊ฐ. ๊ธ€์ž๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ถ€๋ฅด๋Š” ์ชฝ์ด title ์„ ๋ถ™์ธ๋‹ค. */\n &[icon-only] {\n width: ${actionHeight('--context-action-height')};\n padding: 0;\n }\n }\n\n /*\n * ์ฃผ ๋™์ž‘ โ€” ํ™”๋ฉด์—์„œ ํ•˜๋‚˜๋งŒ. emphasis: { raised: true } ๋กœ ์„ ์–ธํ•œ๋‹ค.\n * ๋‘˜ ์ด์ƒ์„ ์ด๋ ‡๊ฒŒ ๋‘๋ฉด ์–ด๋А ๊ฒƒ๋„ ์ฃผ ๋™์ž‘์ด ์•„๋‹ˆ๊ฒŒ ๋œ๋‹ค.\n */\n button[raised],\n md-assist-chip[raised] {\n --md-assist-chip-outline-color: var(--md-sys-color-primary);\n --md-assist-chip-elevated-container-color: var(--md-sys-color-primary);\n --md-assist-chip-label-text-color: var(--md-sys-color-on-primary);\n --md-assist-chip-leading-icon-color: var(--md-sys-color-on-primary);\n\n background-color: var(--md-sys-color-primary);\n border-color: var(--md-sys-color-primary);\n color: var(--md-sys-color-on-primary);\n\n md-icon {\n color: var(--md-sys-color-on-primary);\n }\n\n /* ์ฑ„์šด ๋ฒ„ํŠผ์€ ์ƒ‰์„ ๋ฐ”๊พธ์ง€ ์•Š๊ณ  ํ•œ ๋‹จ๊ณ„ ์–ด๋‘ก๊ฒŒ โ€” ํฐ ๊ธ€์ž๊ฐ€ ๊ณ„์† ์ฝํ˜€์•ผ ํ•œ๋‹ค. */\n &:hover {\n background-color: color-mix(in srgb, var(--md-sys-color-primary) 88%, black);\n border-color: color-mix(in srgb, var(--md-sys-color-primary) 88%, black);\n color: var(--md-sys-color-on-primary);\n\n md-icon {\n color: var(--md-sys-color-on-primary);\n }\n }\n }\n\n /*\n * With a finger. The platform keeps 44px; the operato products use one height for mouse and finger\n * (their suite value). A screen that raises --context-action-height still wins through max().\n */\n @media (pointer: coarse) {\n button {\n height: max(\n ${actionHeight('--context-action-height')},\n ${suiteActionHeight('--context-action-height', ACTION_HEIGHT_PLATFORM_EXCEPTIONS.contextActionTouch)}\n );\n }\n\n button[icon-only] {\n width: max(\n ${actionHeight('--context-action-height')},\n ${suiteActionHeight('--context-action-height', ACTION_HEIGHT_PLATFORM_EXCEPTIONS.contextActionTouch)}\n );\n }\n }\n\n [filled] {\n font-variation-settings: 'FILL' 1;\n }\n\n [danger],\n button[danger],\n md-assist-chip[danger] {\n /*\n * The destructive fill. The scheme's error tokens are the default; a theme may hand in its\n * own pair - in a dark scheme the error tone is a pastel, and a pastel plate with dark red\n * figures reads as a sticker rather than a button.\n */\n --md-assist-chip-outline-color: var(--danger-button-background, var(--md-sys-color-error));\n --md-assist-chip-elevated-container-color: var(--danger-button-background, var(--md-sys-color-error));\n\n --md-assist-chip-label-text-color: var(--danger-button-color, var(--md-sys-color-on-error));\n --md-assist-chip-leading-icon-color: var(--danger-button-color, var(--md-sys-color-on-error));\n\n --md-assist-chip-hover-label-text-color: var(--danger-button-hover-color, var(--md-sys-color-error));\n --md-assist-chip-hover-leading-icon-color: var(--danger-button-hover-color, var(--md-sys-color-error));\n\n color: var(--danger-button-color, var(--md-sys-color-on-error));\n background-color: var(--danger-button-background, var(--md-sys-color-error));\n border-color: var(--danger-button-background, var(--md-sys-color-error));\n\n md-icon {\n color: var(--danger-button-color, var(--md-sys-color-on-error));\n }\n\n &:hover {\n --md-assist-chip-outline-color: var(--danger-button-background, var(--md-sys-color-error));\n --md-assist-chip-elevated-container-color: var(--danger-button-hover-background, var(--md-sys-color-on-error));\n\n --md-assist-chip-label-text-color: var(--danger-button-hover-color, var(--md-sys-color-error));\n --md-assist-chip-leading-icon-color: var(--danger-button-hover-color, var(--md-sys-color-error));\n\n color: var(--danger-button-hover-color, var(--md-sys-color-error));\n background-color: var(--danger-button-hover-background, var(--md-sys-color-on-error));\n }\n }\n\n select,\n input[type='text'] {\n background-color: var(--button-background-color, var(--md-sys-color-secondary-container));\n border: 1px solid var(--md-sys-color-outline);\n border-radius: var(--button-border-radius);\n padding: 0 var(--spacing-tiny);\n\n font-size: var(--fontsize-default);\n color: var(--button-color, var(--md-sys-color-on-secondary-container));\n }\n\n [filler] {\n flex: 1;\n }\n\n @media screen and (max-width: 460px) {\n .button-container {\n padding: 0;\n gap: 0;\n }\n\n button,\n md-icon {\n border-radius: 0;\n }\n\n button:not(:last-child),\n md-icon:not(:last-child) {\n border-right-width: 0;\n }\n }\n`\n"]}
@@ -265,28 +265,33 @@ export const CommonHeaderStyles = css `
265
265
  [danger],
266
266
  button[danger],
267
267
  md-assist-chip[danger] {
268
- --md-assist-chip-outline-color: var(--md-sys-color-error);
269
- --md-assist-chip-elevated-container-color: var(--md-sys-color-error);
268
+ /*
269
+ * The destructive fill. The scheme's error tokens are the default; a theme may hand in its
270
+ * own pair - in a dark scheme the error tone is a pastel, and a pastel plate with dark red
271
+ * figures reads as a sticker rather than a button.
272
+ */
273
+ --md-assist-chip-outline-color: var(--danger-button-background, var(--md-sys-color-error));
274
+ --md-assist-chip-elevated-container-color: var(--danger-button-background, var(--md-sys-color-error));
270
275
 
271
- --md-assist-chip-label-text-color: var(--md-sys-color-on-error);
272
- --md-assist-chip-leading-icon-color: var(--md-sys-color-on-error);
276
+ --md-assist-chip-label-text-color: var(--danger-button-color, var(--md-sys-color-on-error));
277
+ --md-assist-chip-leading-icon-color: var(--danger-button-color, var(--md-sys-color-on-error));
273
278
 
274
- --md-assist-chip-hover-label-text-color: var(--md-sys-color-error);
275
- --md-assist-chip-hover-leading-icon-color: var(--md-sys-color-error);
279
+ --md-assist-chip-hover-label-text-color: var(--danger-button-hover-color, var(--md-sys-color-error));
280
+ --md-assist-chip-hover-leading-icon-color: var(--danger-button-hover-color, var(--md-sys-color-error));
276
281
 
277
- color: var(--md-sys-color-on-error);
278
- background-color: var(--md-sys-color-error);
279
- border-color: var(--md-sys-color-error);
282
+ color: var(--danger-button-color, var(--md-sys-color-on-error));
283
+ background-color: var(--danger-button-background, var(--md-sys-color-error));
284
+ border-color: var(--danger-button-background, var(--md-sys-color-error));
280
285
 
281
286
  &:hover {
282
- --md-assist-chip-outline-color: var(--md-sys-color-error);
283
- --md-assist-chip-elevated-container-color: var(--md-sys-color-on-error);
287
+ --md-assist-chip-outline-color: var(--danger-button-background, var(--md-sys-color-error));
288
+ --md-assist-chip-elevated-container-color: var(--danger-button-hover-background, var(--md-sys-color-on-error));
284
289
 
285
- --md-assist-chip-label-text-color: var(--md-sys-color-error);
286
- --md-assist-chip-leading-icon-color: var(--md-sys-color-error);
290
+ --md-assist-chip-label-text-color: var(--danger-button-hover-color, var(--md-sys-color-error));
291
+ --md-assist-chip-leading-icon-color: var(--danger-button-hover-color, var(--md-sys-color-error));
287
292
 
288
- color: var(--md-sys-color-error);
289
- background-color: var(--md-sys-color-on-error);
293
+ color: var(--danger-button-hover-color, var(--md-sys-color-error));
294
+ background-color: var(--danger-button-hover-background, var(--md-sys-color-on-error));
290
295
  }
291
296
  }
292
297
 
@@ -1 +1 @@
1
- {"version":3,"file":"common-header-styles.js","sourceRoot":"","sources":["../../src/common-header-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAuIjB,YAAY,CAAC,uBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoLxD,CAAA","sourcesContent":["import { css } from 'lit'\n\nimport { actionHeight } from './action-heights.js'\n\nexport const CommonHeaderStyles = css`\n .header {\n display: grid;\n grid-template-areas:\n 'title actions'\n 'filters filters';\n gap: var(--spacing-small) var(--spacing-medium);\n\n /*\n * โ”€โ”€ ์ด ์—ฌ๋ฐฑ์ด ๋จธ๋ฆฌ ์ค„์˜ ์œ„์•„๋ž˜ ์ˆจ์ด๋‹ค โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n * ๋จธ๋ฆฌ๋Š” ๊ทธ๋ฆฌ์ŠคํŠธ ๋งจ ์œ„์— ์–นํžˆ๊ณ , ๋ณธ๋ฌธ์€ ๋จธ๋ฆฌ๊ฐ€ ๋๋‚˜๋Š” ์ž๋ฆฌ์—์„œ ์‹œ์ž‘ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋จธ๋ฆฌ ์•ˆ์˜\n * ๋‚ด์šฉ(ํ•„ํ„ฐ ์นฉ ยท ํ•„ํ„ฐ ํผ) ์œ„์•„๋ž˜ ์—ฌ๋ฐฑ์€ **์ด padding ํ•˜๋‚˜๊ฐ€ ์ •ํ•œ๋‹ค** โ€” ํ•œ์ชฝ๋งŒ ๋„“์–ด์ง€๋Š” ์ผ์ด\n * ์—†๋‹ค.\n *\n * 4px(= medium/2)์ด์—ˆ์„ ๋•Œ ์ข์•„ ๋ณด์˜€๋‹ค. ๋ˆˆ๊ธˆ์˜ ๋‹ค์Œ ๊ฐ’์ด 8px ์ด๊ณ , ๊ทธ๊ฒƒ์ด ๋งˆ์นจ ๊ฐ€๋กœ์™€ ๊ฐ™์•„์„œ\n * **๋„ค ๋ฉด์„ ํ•œ ๊ฐ’์œผ๋กœ** ์“ด๋‹ค โ€” ๋ˆˆ๊ธˆ์— ์—†๋Š” ๊ฐ’์„ ์œ„ํ•ด ํ† ํฐ์„ ์ƒˆ๋กœ ์ง€์–ด๋‚ด์ง€ ์•Š๋Š”๋‹ค.\n *\n * ๊ฐ€๋กœ๊ฐ€ ๊ทธ๋ฆฌ์ŠคํŠธ์˜ ์ขŒ์šฐ padding ๊ณผ ๊ฐ™์€ ๊ฐ’์ด์–ด์•ผ ๋จธ๋ฆฌ ์•ˆ์˜ ์ฒซ ์š”์†Œ๊ฐ€ ํ‘œ์˜ ์ฒซ ์นธ๊ณผ **๊ฐ™์€ ์™ผ์ชฝ\n * ๊ธฐ์ค€์„ **์— ์„ ๋‹ค. ๊ทธ๊ฑด ์ทจํ–ฅ์ด ์•„๋‹ˆ๋ผ ๋งž์ถฐ์•ผ ํ•˜๋Š” ๊ฐ’์ด๊ณ , ์„ธ๋กœ๋„ ๊ฐ™์€ ๊ฐ’์ด๋ฉด ์–ด๊ธ‹๋‚  ์ผ์ด ์—†๋‹ค.\n */\n padding: var(--spacing-medium);\n\n align-items: center;\n\n .title {\n grid-area: title;\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--spacing-small);\n\n font: var(--subtitle-font);\n color: var(--md-sys-color-on-secondary-container);\n text-transform: capitalize;\n }\n\n .filters {\n grid-area: filters;\n border: none;\n border-radius: var(--md-sys-shape-corner-small, 5px);\n background-color: var(--md-sys-color-surface);\n padding: var(--spacing-medium) var(--spacing-large);\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--spacing-large);\n\n .filter {\n display: flex;\n flex-direction: row;\n\n align-items: center;\n gap: var(--spacing-small);\n }\n\n label {\n font: var(--md-sys-typescale-label-medium-weight, var(--md-ref-typeface-weight-medium, 500))\n var(--fontsize-default) var(--theme-font);\n color: var(--md-sys-color-primary);\n }\n }\n\n .filters:empty {\n display: none;\n }\n\n .actions {\n grid-area: actions;\n margin-left: auto;\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n gap: var(--spacing-small);\n\n * {\n cursor: pointer;\n }\n\n .textbtn,\n .iconbtn {\n background-color: var(--md-sys-color-secondary-container);\n border: var(--button-border);\n border-radius: var(--button-border-radius);\n\n color: var(--md-sys-color-on-secondary-container);\n font: var(--button-font);\n\n &:hover {\n border: var(--button-activ-border);\n background-color: var(--button-activ-background-color);\n box-shadow: var(--button-active-box-shadow);\n\n color: var(--md-sys-color-on-secondary);\n }\n }\n\n .iconbtn {\n line-height: 0.9;\n\n md-icon {\n --md-icon-size: var(--icon-size-medium);\n }\n }\n\n button {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--spacing-small);\n padding: var(--spacing-tiny) var(--spacing-small);\n }\n }\n\n :empty {\n padding: 0;\n }\n }\n\n .footer {\n display: flex;\n flex-direction: row;\n text-align: right;\n background-color: var(--md-sys-color-surface-variant);\n padding: 0;\n\n /*\n * The footer is a popup's action row, so it reads the popup token (ADR-0060 decision 6). One use,\n * one token: popups moving to <ox-popup-actions> and popups still on this footer stay the same\n * height while the move is under way.\n */\n button {\n display: flex;\n gap: var(--spacing-medium);\n align-items: center;\n justify-content: center;\n min-height: ${actionHeight('--popup-action-height')};\n padding: var(--spacing-tiny) var(--spacing-medium);\n background-color: transparent;\n color: var(--md-sys-color-on-surface);\n font-size: var(--md-sys-typescale-title-medium-size, 1rem);\n line-height: 2;\n border-width: 0;\n border-radius: 0;\n border-left: 1px solid var(--md-sys-color-surface);\n }\n\n button[ok],\n button[done] {\n color: var(--md-sys-color-on-primary);\n background-color: var(--md-sys-color-primary);\n }\n\n [filler] {\n margin-left: auto;\n }\n\n /*\n * โ”€โ”€ ์†๊ฐ€๋ฝ๊ณผ ๋งˆ์šฐ์Šค๋Š” ๋‹ค๋ฅธ ๋ฐ”๋‹ฅ์„ ์›ํ•œ๋‹ค โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n *\n * ์œ„์˜ ๋ชจ์–‘์€ **ํœด๋Œ€ํฐ์˜ ํ•˜๋‹จ ์•ก์…˜๋ฐ”**๋‹ค. ํšŒ์ƒ‰ ๋ ์— ๊ฐ์ง„ ๋‹จ์ถ”๊ฐ€ ์นธ๋ง‰์ด ์„ ์œผ๋กœ ๋ถ™์–ด ํ™”๋ฉด ํญ์„\n * ๊ฝ‰ ์ฑ„์šด๋‹ค โ€” ์—„์ง€๋กœ ๋ˆ„๋ฅด๋Š” ์ž๋ฆฌ๋ผ ๊ทธ๊ฒŒ ๋งž๋‹ค.\n *\n * ๋งˆ์šฐ์Šค๋กœ ์“ฐ๋Š” ํ™”๋ฉด์—์„œ๋Š” ๊ทธ ๋ฌธ๋ฒ•์ด ๋‹ต๋‹ตํ•˜๋‹ค. ์ƒ์ž ์•ˆ์— ๋˜ ํ•˜๋‚˜์˜ ๋ ๊ฐ€ ๋“ค์–ด์•‰๊ณ , ๋‹จ์ถ” ๊ธ€์ž๊ฐ€\n * ๋ณธ๋ฌธ(14px)๋ณด๋‹ค ํฐ 16px ์— ์ค„๋†’์ด 2 ๋ผ ๋ ๊ฐ€ ๋‘๊บผ์›Œ์ง„๋‹ค. ๊ฐ์ง„ ๋‹จ์ถ”์™€ ์นธ๋ง‰์ด ์„ ์€ ์ด ์ œํ’ˆ์˜\n * ๋‹ค๋ฅธ ์ปจํŠธ๋กค(์•Œ์•ฝ ยท ๋‘ฅ๊ทผ ์นด๋“œ)๊ณผ๋„ ์–ด๊ธ‹๋‚œ๋‹ค.\n *\n * ํญ์ด ์•„๋‹ˆ๋ผ **์ž…๋ ฅ ์žฅ์น˜**๋กœ ๊ฐ€๋ฅธ๋‹ค โ€” ์ข์€ ์ฐฝ์—์„œ ๋งˆ์šฐ์Šค๋ฅผ ์“ฐ๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ์•ก์…˜๋ฐ”๋ฅผ ์ค„ ์ด์œ ๊ฐ€\n * ์—†๊ณ , ํฐ ํƒœ๋ธ”๋ฆฟ์—์„œ ์†๊ฐ€๋ฝ์œผ๋กœ ๋ˆ„๋ฅด๋Š” ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ์ค˜์•ผ ํ•œ๋‹ค. ๋ฉ”๋‰ด ๋ ˆ์ผ์ด ๊ฐ™์€ ๊ทœ์น™์„ ์“ด๋‹ค.\n */\n @media (pointer: fine) {\n & {\n /* ๋ ๋ฅผ ๊ฑท๋Š”๋‹ค. ๋ฐ”๋‹ฅ์€ ํŒ์—…์˜ ๋ฉด ๊ทธ๋Œ€๋กœ์ด๊ณ , ์œ„์ชฝ ์‹ค์„  ํ•œ ์˜ฌ์ด ๊ฒฝ๊ณ„๋ฅผ ๋งก๋Š”๋‹ค. */\n background-color: transparent;\n border-top: 1px solid var(--md-sys-color-outline-variant);\n gap: var(--spacing-small, 4px);\n padding: var(--spacing-medium, 8px) var(--spacing-medium, 8px);\n align-items: center;\n }\n\n button {\n padding: 0 var(--spacing-large, 12px);\n gap: var(--spacing-small, 4px);\n font-size: var(--md-sys-typescale-label-large-size, 0.875rem);\n line-height: 1.4;\n /*\n * โ”€โ”€ ๋ชจ์„œ๋ฆฌ๋Š” **๋‹ด๋Š” ๋ฉด**์„ ๋”ฐ๋ฅธ๋‹ค (๋™์‹ฌ ๋ชจ์„œ๋ฆฌ) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n *\n * ํŽ˜์ด์ง€ ๋‹ด๋Š” ๋ฉด 0 โ€” ๊ฝ‰ ์ฐฌ ํ‰๋ฉด, ์ง๊ฐ ๊ฒฉ์ž โ†’ ์ปจํŠธ๋กค 6px (์ €์žฅ)\n * ํŒ์—… ๋‹ด๋Š” ๋ฉด 16px โ€” ๋–  ์žˆ๋Š” ๋‘ฅ๊ทผ ์นด๋“œ โ†’ ์ปจํŠธ๋กค ์•Œ์•ฝ\n *\n * ์ด ๋ฐ”๋‹ฅ์€ ํŒ์—… ์•ˆ์—๋งŒ ์„ ๋‹ค(๋งˆ์šฐ์Šค ํ™”๋ฉด). ๊ทธ๋ž˜์„œ ์•Œ์•ฝ์ด๋‹ค. ํŽ˜์ด์ง€์˜ ์ €์žฅ์ด 6px ์ธ ๊ฒƒ๊ณผ\n * ๊ฐˆ๋ฆฌ๋Š”๋ฐ, ๊ทธ๊ฒƒ์ด ๋ถˆ์ผ์น˜๊ฐ€ ์•„๋‹ˆ๋ผ **๊ฐ™์€ ์›์น™์„ ๋‘ ๋ฒˆ ์ ์šฉํ•œ ๊ฒฐ๊ณผ**๋‹ค.\n *\n * โ”€โ”€ ํ•œ๋•Œ 5px ๋กœ ๋ฐ”๊ฟจ๋‹ค. ๋˜๋Œ๋ ธ๋‹ค โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n * ํ…Œ๋งˆ๊ฐ€ Material ๋‹จ์ถ”์˜ ๋ชจ์–‘์„ ๋ชป ๋ฐ•์•„ ๋‘” ๊ฒƒ์„ ๋ณด๊ณ \n *\n * shell/client/themes/material-theme.css:19-22\n * --md-{text,filled,outlined,elevated}-button-container-shape: var(--md-sys-shape-corner-small)\n *\n * ใ€Œ์ œํ’ˆ์ด ์ด๋ฏธ ์ •ํ–ˆ์œผ๋‹ˆ ์•Œ์•ฝ์€ ์ดํƒˆใ€์ด๋ผ๊ณ  ํŒ๋‹จํ–ˆ๋‹ค. ๊ทธ ๊ฐ’์€ **ํŽ˜์ด์ง€ ๋‹จ์ถ”๋ฅผ ์œ„ํ•œ\n * ๊ฒƒ**์ด๊ณ  ํŒ์—… ์•ˆ์ด๋ผ๋Š” ์กฐ๊ฑด์„ ๋”ฐ๋กœ ๋ณธ ์ ์ด ์—†๋‹ค. ์ด์ œ CommonPopupStyles ๊ฐ€ ํŒ์—… ์•ˆ์—์„œ\n * ๊ทธ ํ† ํฐ์„ ๋ฎ์œผ๋ฏ€๋กœ, Material ๋‹จ์ถ”๋ฅผ ์“ฐ๋Š” ํŒ์—… ์—ด ๊ณณ๋„ ํ•จ๊ป˜ ์•Œ์•ฝ์ด๋‹ค.\n *\n * ๊ฐ’์„ ํŒ์—…์ด ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค โ€” --popup-control-radius ๋ฅผ ๋‚ด๋ฆฌ๋ฉด ์ด ๋ฐ”๋‹ฅ์ด ๋”ฐ๋ฅธ๋‹ค.\n * CommonPopupStyles ๊ฐ€ ๊ทธ ์ง์„ ์„ ์–ธํ•œ๋‹ค.\n *\n * [ํ™•์ธํ•จ] 2026-09-04 ยท corner-full 999px ยท ํŽ˜์ด์ง€ ์ €์žฅ 6px/32px ยท\n * ํŒ์—… ์นด๋“œ [overlayed] 16px\n */\n border-radius: var(--popup-control-radius, 999em);\n /* ์นธ๋ง‰์ด ์„ ์„ ๊ฑท๋Š”๋‹ค โ€” ๋‹จ์ถ”๊ฐ€ ์ €๋งˆ๋‹ค ์ž๊ธฐ ๋ชจ์–‘์„ ๊ฐ€์ง€๋ฏ€๋กœ ๋‚˜๋ˆŒ ํ•„์š”๊ฐ€ ์—†๋‹ค. */\n border-left: none;\n cursor: pointer;\n transition: background-color 0.12s ease-out;\n }\n\n /* ๊ณ ๋™์ž‘์€ ๊ธ€์ž ๋‹จ์ถ”๋‹ค. ๋ˆŒ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆด ๋•Œ ๋ฉด์œผ๋กœ ๋งํ•œ๋‹ค. */\n button:hover {\n background-color: var(--md-sys-color-surface-container-high);\n }\n\n /*\n * ๊ฐ’์„ ์ง€์šฐ๋Š” ๋™์ž‘์€ ์™ผ์ชฝ ๋์— ๋”ฐ๋กœ ์„ ๋‹ค. ํ•œ ๋‹จ ํ๋ฆฌ๊ฒŒ ๋‘”๋‹ค โ€” ์ž์ฃผ ์“ฐ๋Š” ์ผ์ด ์•„๋‹ˆ๊ณ ,\n * ํ™•์ •๊ณผ ๊ฐ™์€ ๋ฌด๊ฒŒ๋กœ ๋‘๋ฉด ์ž˜๋ชป ๋ˆ„๋ฅธ๋‹ค.\n */\n button[clear] {\n color: var(--md-sys-color-on-surface-variant);\n }\n\n button[clear]:hover {\n color: var(--md-sys-color-on-surface);\n }\n\n button md-icon {\n --md-icon-size: 18px;\n }\n\n /*\n * โ”€โ”€ ํ•  ์ˆ˜ ์—†๋Š” ๋‹จ์ถ”๋Š” **ํ•  ์ˆ˜ ์—†์–ด ๋ณด์ธ๋‹ค** โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n *\n * ์•„๋ฌด ์ผ๋„ ํ•˜์ง€ ์•Š๋Š” ๋‹จ์ถ”๋ฅผ ๊ทธ๋Œ€๋กœ ๋‘๋ฉด, ๋ˆ„๋ฅธ ์‚ฌ๋žŒ์ด ์ž๊ธฐ๊ฐ€ ๋ฌด์—‡์„ ์ž˜๋ชปํ–ˆ๋Š”์ง€ ๋ชจ๋ฅธ๋‹ค.\n * ์ฐธ์กฐ ํŒ์—…์—์„œ ๊ณ ๋ฅธ ๊ฒƒ์ด ์—†์„ ๋•Œ ํ™•์ธ์ด ๊ทธ๋žฌ๋‹ค โ€” ๋ˆŒ๋ฆฌ๊ธฐ๋Š” ํ•˜๊ณ  ์•„๋ฌด ์ผ์ด ์—†์—ˆ๋‹ค.\n *\n * ์ฑ„์›€์„ ๊ฑท๊ณ  ์ž‰ํฌ๋ฅผ ํ๋ฆฐ๋‹ค. ๋งˆ์šฐ์Šค ์ปค์„œ๋„ ๋ฐ”๊พผ๋‹ค โ€” ์˜ฌ๋ ค ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n */\n button[disabled],\n button[disabled]:hover {\n background-color: transparent;\n color: var(--md-sys-color-on-surface);\n opacity: 0.38;\n cursor: default;\n box-shadow: none;\n }\n\n /* ์ฃผ ๋™์ž‘ ํ•˜๋‚˜๋งŒ ์ฑ„์šด๋‹ค. ๋‘˜์„ ์ฑ„์šฐ๋ฉด ์–ด๋А ์ชฝ์ด ๊ทธ ์ผ์ธ์ง€ ํ๋ ค์ง„๋‹ค. */\n button[ok]:hover,\n button[done]:hover {\n background-color: color-mix(in srgb, var(--md-sys-color-primary) 88%, var(--md-sys-color-on-primary));\n }\n }\n }\n\n [danger],\n button[danger],\n md-assist-chip[danger] {\n --md-assist-chip-outline-color: var(--md-sys-color-error);\n --md-assist-chip-elevated-container-color: var(--md-sys-color-error);\n\n --md-assist-chip-label-text-color: var(--md-sys-color-on-error);\n --md-assist-chip-leading-icon-color: var(--md-sys-color-on-error);\n\n --md-assist-chip-hover-label-text-color: var(--md-sys-color-error);\n --md-assist-chip-hover-leading-icon-color: var(--md-sys-color-error);\n\n color: var(--md-sys-color-on-error);\n background-color: var(--md-sys-color-error);\n border-color: var(--md-sys-color-error);\n\n &:hover {\n --md-assist-chip-outline-color: var(--md-sys-color-error);\n --md-assist-chip-elevated-container-color: var(--md-sys-color-on-error);\n\n --md-assist-chip-label-text-color: var(--md-sys-color-error);\n --md-assist-chip-leading-icon-color: var(--md-sys-color-error);\n\n color: var(--md-sys-color-error);\n background-color: var(--md-sys-color-on-error);\n }\n }\n\n @media only screen and (max-width: 460px) {\n .header {\n padding: 0;\n gap: 0;\n\n grid-template-areas:\n 'actions'\n 'filters';\n\n .title {\n display: none;\n }\n\n .filters {\n flex-wrap: wrap;\n gap: var(--spacing-medium);\n border: none;\n }\n\n .actions {\n background-color: var(--md-sys-color-on-secondary-container);\n margin: 0;\n }\n }\n }\n`\n"]}
1
+ {"version":3,"file":"common-header-styles.js","sourceRoot":"","sources":["../../src/common-header-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAuIjB,YAAY,CAAC,uBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyLxD,CAAA","sourcesContent":["import { css } from 'lit'\n\nimport { actionHeight } from './action-heights.js'\n\nexport const CommonHeaderStyles = css`\n .header {\n display: grid;\n grid-template-areas:\n 'title actions'\n 'filters filters';\n gap: var(--spacing-small) var(--spacing-medium);\n\n /*\n * โ”€โ”€ ์ด ์—ฌ๋ฐฑ์ด ๋จธ๋ฆฌ ์ค„์˜ ์œ„์•„๋ž˜ ์ˆจ์ด๋‹ค โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n * ๋จธ๋ฆฌ๋Š” ๊ทธ๋ฆฌ์ŠคํŠธ ๋งจ ์œ„์— ์–นํžˆ๊ณ , ๋ณธ๋ฌธ์€ ๋จธ๋ฆฌ๊ฐ€ ๋๋‚˜๋Š” ์ž๋ฆฌ์—์„œ ์‹œ์ž‘ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋จธ๋ฆฌ ์•ˆ์˜\n * ๋‚ด์šฉ(ํ•„ํ„ฐ ์นฉ ยท ํ•„ํ„ฐ ํผ) ์œ„์•„๋ž˜ ์—ฌ๋ฐฑ์€ **์ด padding ํ•˜๋‚˜๊ฐ€ ์ •ํ•œ๋‹ค** โ€” ํ•œ์ชฝ๋งŒ ๋„“์–ด์ง€๋Š” ์ผ์ด\n * ์—†๋‹ค.\n *\n * 4px(= medium/2)์ด์—ˆ์„ ๋•Œ ์ข์•„ ๋ณด์˜€๋‹ค. ๋ˆˆ๊ธˆ์˜ ๋‹ค์Œ ๊ฐ’์ด 8px ์ด๊ณ , ๊ทธ๊ฒƒ์ด ๋งˆ์นจ ๊ฐ€๋กœ์™€ ๊ฐ™์•„์„œ\n * **๋„ค ๋ฉด์„ ํ•œ ๊ฐ’์œผ๋กœ** ์“ด๋‹ค โ€” ๋ˆˆ๊ธˆ์— ์—†๋Š” ๊ฐ’์„ ์œ„ํ•ด ํ† ํฐ์„ ์ƒˆ๋กœ ์ง€์–ด๋‚ด์ง€ ์•Š๋Š”๋‹ค.\n *\n * ๊ฐ€๋กœ๊ฐ€ ๊ทธ๋ฆฌ์ŠคํŠธ์˜ ์ขŒ์šฐ padding ๊ณผ ๊ฐ™์€ ๊ฐ’์ด์–ด์•ผ ๋จธ๋ฆฌ ์•ˆ์˜ ์ฒซ ์š”์†Œ๊ฐ€ ํ‘œ์˜ ์ฒซ ์นธ๊ณผ **๊ฐ™์€ ์™ผ์ชฝ\n * ๊ธฐ์ค€์„ **์— ์„ ๋‹ค. ๊ทธ๊ฑด ์ทจํ–ฅ์ด ์•„๋‹ˆ๋ผ ๋งž์ถฐ์•ผ ํ•˜๋Š” ๊ฐ’์ด๊ณ , ์„ธ๋กœ๋„ ๊ฐ™์€ ๊ฐ’์ด๋ฉด ์–ด๊ธ‹๋‚  ์ผ์ด ์—†๋‹ค.\n */\n padding: var(--spacing-medium);\n\n align-items: center;\n\n .title {\n grid-area: title;\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--spacing-small);\n\n font: var(--subtitle-font);\n color: var(--md-sys-color-on-secondary-container);\n text-transform: capitalize;\n }\n\n .filters {\n grid-area: filters;\n border: none;\n border-radius: var(--md-sys-shape-corner-small, 5px);\n background-color: var(--md-sys-color-surface);\n padding: var(--spacing-medium) var(--spacing-large);\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--spacing-large);\n\n .filter {\n display: flex;\n flex-direction: row;\n\n align-items: center;\n gap: var(--spacing-small);\n }\n\n label {\n font: var(--md-sys-typescale-label-medium-weight, var(--md-ref-typeface-weight-medium, 500))\n var(--fontsize-default) var(--theme-font);\n color: var(--md-sys-color-primary);\n }\n }\n\n .filters:empty {\n display: none;\n }\n\n .actions {\n grid-area: actions;\n margin-left: auto;\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n gap: var(--spacing-small);\n\n * {\n cursor: pointer;\n }\n\n .textbtn,\n .iconbtn {\n background-color: var(--md-sys-color-secondary-container);\n border: var(--button-border);\n border-radius: var(--button-border-radius);\n\n color: var(--md-sys-color-on-secondary-container);\n font: var(--button-font);\n\n &:hover {\n border: var(--button-activ-border);\n background-color: var(--button-activ-background-color);\n box-shadow: var(--button-active-box-shadow);\n\n color: var(--md-sys-color-on-secondary);\n }\n }\n\n .iconbtn {\n line-height: 0.9;\n\n md-icon {\n --md-icon-size: var(--icon-size-medium);\n }\n }\n\n button {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--spacing-small);\n padding: var(--spacing-tiny) var(--spacing-small);\n }\n }\n\n :empty {\n padding: 0;\n }\n }\n\n .footer {\n display: flex;\n flex-direction: row;\n text-align: right;\n background-color: var(--md-sys-color-surface-variant);\n padding: 0;\n\n /*\n * The footer is a popup's action row, so it reads the popup token (ADR-0060 decision 6). One use,\n * one token: popups moving to <ox-popup-actions> and popups still on this footer stay the same\n * height while the move is under way.\n */\n button {\n display: flex;\n gap: var(--spacing-medium);\n align-items: center;\n justify-content: center;\n min-height: ${actionHeight('--popup-action-height')};\n padding: var(--spacing-tiny) var(--spacing-medium);\n background-color: transparent;\n color: var(--md-sys-color-on-surface);\n font-size: var(--md-sys-typescale-title-medium-size, 1rem);\n line-height: 2;\n border-width: 0;\n border-radius: 0;\n border-left: 1px solid var(--md-sys-color-surface);\n }\n\n button[ok],\n button[done] {\n color: var(--md-sys-color-on-primary);\n background-color: var(--md-sys-color-primary);\n }\n\n [filler] {\n margin-left: auto;\n }\n\n /*\n * โ”€โ”€ ์†๊ฐ€๋ฝ๊ณผ ๋งˆ์šฐ์Šค๋Š” ๋‹ค๋ฅธ ๋ฐ”๋‹ฅ์„ ์›ํ•œ๋‹ค โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n *\n * ์œ„์˜ ๋ชจ์–‘์€ **ํœด๋Œ€ํฐ์˜ ํ•˜๋‹จ ์•ก์…˜๋ฐ”**๋‹ค. ํšŒ์ƒ‰ ๋ ์— ๊ฐ์ง„ ๋‹จ์ถ”๊ฐ€ ์นธ๋ง‰์ด ์„ ์œผ๋กœ ๋ถ™์–ด ํ™”๋ฉด ํญ์„\n * ๊ฝ‰ ์ฑ„์šด๋‹ค โ€” ์—„์ง€๋กœ ๋ˆ„๋ฅด๋Š” ์ž๋ฆฌ๋ผ ๊ทธ๊ฒŒ ๋งž๋‹ค.\n *\n * ๋งˆ์šฐ์Šค๋กœ ์“ฐ๋Š” ํ™”๋ฉด์—์„œ๋Š” ๊ทธ ๋ฌธ๋ฒ•์ด ๋‹ต๋‹ตํ•˜๋‹ค. ์ƒ์ž ์•ˆ์— ๋˜ ํ•˜๋‚˜์˜ ๋ ๊ฐ€ ๋“ค์–ด์•‰๊ณ , ๋‹จ์ถ” ๊ธ€์ž๊ฐ€\n * ๋ณธ๋ฌธ(14px)๋ณด๋‹ค ํฐ 16px ์— ์ค„๋†’์ด 2 ๋ผ ๋ ๊ฐ€ ๋‘๊บผ์›Œ์ง„๋‹ค. ๊ฐ์ง„ ๋‹จ์ถ”์™€ ์นธ๋ง‰์ด ์„ ์€ ์ด ์ œํ’ˆ์˜\n * ๋‹ค๋ฅธ ์ปจํŠธ๋กค(์•Œ์•ฝ ยท ๋‘ฅ๊ทผ ์นด๋“œ)๊ณผ๋„ ์–ด๊ธ‹๋‚œ๋‹ค.\n *\n * ํญ์ด ์•„๋‹ˆ๋ผ **์ž…๋ ฅ ์žฅ์น˜**๋กœ ๊ฐ€๋ฅธ๋‹ค โ€” ์ข์€ ์ฐฝ์—์„œ ๋งˆ์šฐ์Šค๋ฅผ ์“ฐ๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ์•ก์…˜๋ฐ”๋ฅผ ์ค„ ์ด์œ ๊ฐ€\n * ์—†๊ณ , ํฐ ํƒœ๋ธ”๋ฆฟ์—์„œ ์†๊ฐ€๋ฝ์œผ๋กœ ๋ˆ„๋ฅด๋Š” ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ์ค˜์•ผ ํ•œ๋‹ค. ๋ฉ”๋‰ด ๋ ˆ์ผ์ด ๊ฐ™์€ ๊ทœ์น™์„ ์“ด๋‹ค.\n */\n @media (pointer: fine) {\n & {\n /* ๋ ๋ฅผ ๊ฑท๋Š”๋‹ค. ๋ฐ”๋‹ฅ์€ ํŒ์—…์˜ ๋ฉด ๊ทธ๋Œ€๋กœ์ด๊ณ , ์œ„์ชฝ ์‹ค์„  ํ•œ ์˜ฌ์ด ๊ฒฝ๊ณ„๋ฅผ ๋งก๋Š”๋‹ค. */\n background-color: transparent;\n border-top: 1px solid var(--md-sys-color-outline-variant);\n gap: var(--spacing-small, 4px);\n padding: var(--spacing-medium, 8px) var(--spacing-medium, 8px);\n align-items: center;\n }\n\n button {\n padding: 0 var(--spacing-large, 12px);\n gap: var(--spacing-small, 4px);\n font-size: var(--md-sys-typescale-label-large-size, 0.875rem);\n line-height: 1.4;\n /*\n * โ”€โ”€ ๋ชจ์„œ๋ฆฌ๋Š” **๋‹ด๋Š” ๋ฉด**์„ ๋”ฐ๋ฅธ๋‹ค (๋™์‹ฌ ๋ชจ์„œ๋ฆฌ) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n *\n * ํŽ˜์ด์ง€ ๋‹ด๋Š” ๋ฉด 0 โ€” ๊ฝ‰ ์ฐฌ ํ‰๋ฉด, ์ง๊ฐ ๊ฒฉ์ž โ†’ ์ปจํŠธ๋กค 6px (์ €์žฅ)\n * ํŒ์—… ๋‹ด๋Š” ๋ฉด 16px โ€” ๋–  ์žˆ๋Š” ๋‘ฅ๊ทผ ์นด๋“œ โ†’ ์ปจํŠธ๋กค ์•Œ์•ฝ\n *\n * ์ด ๋ฐ”๋‹ฅ์€ ํŒ์—… ์•ˆ์—๋งŒ ์„ ๋‹ค(๋งˆ์šฐ์Šค ํ™”๋ฉด). ๊ทธ๋ž˜์„œ ์•Œ์•ฝ์ด๋‹ค. ํŽ˜์ด์ง€์˜ ์ €์žฅ์ด 6px ์ธ ๊ฒƒ๊ณผ\n * ๊ฐˆ๋ฆฌ๋Š”๋ฐ, ๊ทธ๊ฒƒ์ด ๋ถˆ์ผ์น˜๊ฐ€ ์•„๋‹ˆ๋ผ **๊ฐ™์€ ์›์น™์„ ๋‘ ๋ฒˆ ์ ์šฉํ•œ ๊ฒฐ๊ณผ**๋‹ค.\n *\n * โ”€โ”€ ํ•œ๋•Œ 5px ๋กœ ๋ฐ”๊ฟจ๋‹ค. ๋˜๋Œ๋ ธ๋‹ค โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n * ํ…Œ๋งˆ๊ฐ€ Material ๋‹จ์ถ”์˜ ๋ชจ์–‘์„ ๋ชป ๋ฐ•์•„ ๋‘” ๊ฒƒ์„ ๋ณด๊ณ \n *\n * shell/client/themes/material-theme.css:19-22\n * --md-{text,filled,outlined,elevated}-button-container-shape: var(--md-sys-shape-corner-small)\n *\n * ใ€Œ์ œํ’ˆ์ด ์ด๋ฏธ ์ •ํ–ˆ์œผ๋‹ˆ ์•Œ์•ฝ์€ ์ดํƒˆใ€์ด๋ผ๊ณ  ํŒ๋‹จํ–ˆ๋‹ค. ๊ทธ ๊ฐ’์€ **ํŽ˜์ด์ง€ ๋‹จ์ถ”๋ฅผ ์œ„ํ•œ\n * ๊ฒƒ**์ด๊ณ  ํŒ์—… ์•ˆ์ด๋ผ๋Š” ์กฐ๊ฑด์„ ๋”ฐ๋กœ ๋ณธ ์ ์ด ์—†๋‹ค. ์ด์ œ CommonPopupStyles ๊ฐ€ ํŒ์—… ์•ˆ์—์„œ\n * ๊ทธ ํ† ํฐ์„ ๋ฎ์œผ๋ฏ€๋กœ, Material ๋‹จ์ถ”๋ฅผ ์“ฐ๋Š” ํŒ์—… ์—ด ๊ณณ๋„ ํ•จ๊ป˜ ์•Œ์•ฝ์ด๋‹ค.\n *\n * ๊ฐ’์„ ํŒ์—…์ด ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค โ€” --popup-control-radius ๋ฅผ ๋‚ด๋ฆฌ๋ฉด ์ด ๋ฐ”๋‹ฅ์ด ๋”ฐ๋ฅธ๋‹ค.\n * CommonPopupStyles ๊ฐ€ ๊ทธ ์ง์„ ์„ ์–ธํ•œ๋‹ค.\n *\n * [ํ™•์ธํ•จ] 2026-09-04 ยท corner-full 999px ยท ํŽ˜์ด์ง€ ์ €์žฅ 6px/32px ยท\n * ํŒ์—… ์นด๋“œ [overlayed] 16px\n */\n border-radius: var(--popup-control-radius, 999em);\n /* ์นธ๋ง‰์ด ์„ ์„ ๊ฑท๋Š”๋‹ค โ€” ๋‹จ์ถ”๊ฐ€ ์ €๋งˆ๋‹ค ์ž๊ธฐ ๋ชจ์–‘์„ ๊ฐ€์ง€๋ฏ€๋กœ ๋‚˜๋ˆŒ ํ•„์š”๊ฐ€ ์—†๋‹ค. */\n border-left: none;\n cursor: pointer;\n transition: background-color 0.12s ease-out;\n }\n\n /* ๊ณ ๋™์ž‘์€ ๊ธ€์ž ๋‹จ์ถ”๋‹ค. ๋ˆŒ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆด ๋•Œ ๋ฉด์œผ๋กœ ๋งํ•œ๋‹ค. */\n button:hover {\n background-color: var(--md-sys-color-surface-container-high);\n }\n\n /*\n * ๊ฐ’์„ ์ง€์šฐ๋Š” ๋™์ž‘์€ ์™ผ์ชฝ ๋์— ๋”ฐ๋กœ ์„ ๋‹ค. ํ•œ ๋‹จ ํ๋ฆฌ๊ฒŒ ๋‘”๋‹ค โ€” ์ž์ฃผ ์“ฐ๋Š” ์ผ์ด ์•„๋‹ˆ๊ณ ,\n * ํ™•์ •๊ณผ ๊ฐ™์€ ๋ฌด๊ฒŒ๋กœ ๋‘๋ฉด ์ž˜๋ชป ๋ˆ„๋ฅธ๋‹ค.\n */\n button[clear] {\n color: var(--md-sys-color-on-surface-variant);\n }\n\n button[clear]:hover {\n color: var(--md-sys-color-on-surface);\n }\n\n button md-icon {\n --md-icon-size: 18px;\n }\n\n /*\n * โ”€โ”€ ํ•  ์ˆ˜ ์—†๋Š” ๋‹จ์ถ”๋Š” **ํ•  ์ˆ˜ ์—†์–ด ๋ณด์ธ๋‹ค** โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n *\n * ์•„๋ฌด ์ผ๋„ ํ•˜์ง€ ์•Š๋Š” ๋‹จ์ถ”๋ฅผ ๊ทธ๋Œ€๋กœ ๋‘๋ฉด, ๋ˆ„๋ฅธ ์‚ฌ๋žŒ์ด ์ž๊ธฐ๊ฐ€ ๋ฌด์—‡์„ ์ž˜๋ชปํ–ˆ๋Š”์ง€ ๋ชจ๋ฅธ๋‹ค.\n * ์ฐธ์กฐ ํŒ์—…์—์„œ ๊ณ ๋ฅธ ๊ฒƒ์ด ์—†์„ ๋•Œ ํ™•์ธ์ด ๊ทธ๋žฌ๋‹ค โ€” ๋ˆŒ๋ฆฌ๊ธฐ๋Š” ํ•˜๊ณ  ์•„๋ฌด ์ผ์ด ์—†์—ˆ๋‹ค.\n *\n * ์ฑ„์›€์„ ๊ฑท๊ณ  ์ž‰ํฌ๋ฅผ ํ๋ฆฐ๋‹ค. ๋งˆ์šฐ์Šค ์ปค์„œ๋„ ๋ฐ”๊พผ๋‹ค โ€” ์˜ฌ๋ ค ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n */\n button[disabled],\n button[disabled]:hover {\n background-color: transparent;\n color: var(--md-sys-color-on-surface);\n opacity: 0.38;\n cursor: default;\n box-shadow: none;\n }\n\n /* ์ฃผ ๋™์ž‘ ํ•˜๋‚˜๋งŒ ์ฑ„์šด๋‹ค. ๋‘˜์„ ์ฑ„์šฐ๋ฉด ์–ด๋А ์ชฝ์ด ๊ทธ ์ผ์ธ์ง€ ํ๋ ค์ง„๋‹ค. */\n button[ok]:hover,\n button[done]:hover {\n background-color: color-mix(in srgb, var(--md-sys-color-primary) 88%, var(--md-sys-color-on-primary));\n }\n }\n }\n\n [danger],\n button[danger],\n md-assist-chip[danger] {\n /*\n * The destructive fill. The scheme's error tokens are the default; a theme may hand in its\n * own pair - in a dark scheme the error tone is a pastel, and a pastel plate with dark red\n * figures reads as a sticker rather than a button.\n */\n --md-assist-chip-outline-color: var(--danger-button-background, var(--md-sys-color-error));\n --md-assist-chip-elevated-container-color: var(--danger-button-background, var(--md-sys-color-error));\n\n --md-assist-chip-label-text-color: var(--danger-button-color, var(--md-sys-color-on-error));\n --md-assist-chip-leading-icon-color: var(--danger-button-color, var(--md-sys-color-on-error));\n\n --md-assist-chip-hover-label-text-color: var(--danger-button-hover-color, var(--md-sys-color-error));\n --md-assist-chip-hover-leading-icon-color: var(--danger-button-hover-color, var(--md-sys-color-error));\n\n color: var(--danger-button-color, var(--md-sys-color-on-error));\n background-color: var(--danger-button-background, var(--md-sys-color-error));\n border-color: var(--danger-button-background, var(--md-sys-color-error));\n\n &:hover {\n --md-assist-chip-outline-color: var(--danger-button-background, var(--md-sys-color-error));\n --md-assist-chip-elevated-container-color: var(--danger-button-hover-background, var(--md-sys-color-on-error));\n\n --md-assist-chip-label-text-color: var(--danger-button-hover-color, var(--md-sys-color-error));\n --md-assist-chip-leading-icon-color: var(--danger-button-hover-color, var(--md-sys-color-error));\n\n color: var(--danger-button-hover-color, var(--md-sys-color-error));\n background-color: var(--danger-button-hover-background, var(--md-sys-color-on-error));\n }\n }\n\n @media only screen and (max-width: 460px) {\n .header {\n padding: 0;\n gap: 0;\n\n grid-template-areas:\n 'actions'\n 'filters';\n\n .title {\n display: none;\n }\n\n .filters {\n flex-wrap: wrap;\n gap: var(--spacing-medium);\n border: none;\n }\n\n .actions {\n background-color: var(--md-sys-color-on-secondary-container);\n margin: 0;\n }\n }\n }\n`\n"]}
@@ -15,40 +15,53 @@ else {
15
15
  setIconProperties();
16
16
  }
17
17
  export const LineStyles = css `
18
+ /*
19
+ * Line previews are drawn, not loaded: a 2px stroke in the current ink, dashed by CSS, so they
20
+ * follow the scheme (the PNG sprite they replace was black on white in both).
21
+ */
18
22
  .line-type {
19
- background: var(--url-icon-properties-line-type) 50% 0 no-repeat;
20
- min-height: 24px;
21
- padding: 3px 9px;
23
+ display: flex;
24
+ align-items: center;
25
+ min-height: 20px;
26
+ padding: 0 6px;
27
+ color: var(--md-sys-color-on-surface);
22
28
  }
23
- .line-type.solid {
24
- background-position: 50% 14px;
29
+
30
+ .line-type::before {
31
+ content: '';
32
+ display: block;
33
+ width: 100%;
34
+ height: 2px;
35
+ background: currentColor;
25
36
  }
26
- .line-type.round-dot {
27
- background-position: 50% -35px;
37
+
38
+ .line-type.round-dot::before {
39
+ height: 3px;
40
+ background: radial-gradient(circle, currentColor 1.4px, transparent 1.6px) 0 0 / 6px 3px repeat-x;
28
41
  }
29
- .line-type.square-dot {
30
- background-position: 50% -85px;
42
+ .line-type.square-dot::before {
43
+ background: repeating-linear-gradient(90deg, currentColor 0 3px, transparent 3px 6px);
31
44
  }
32
- .line-type.dash {
33
- background-position: 50% -135px;
45
+ .line-type.dash::before {
46
+ background: repeating-linear-gradient(90deg, currentColor 0 8px, transparent 8px 12px);
34
47
  }
35
- .line-type.dash-dot {
36
- background-position: 50% -185px;
48
+ .line-type.dash-dot::before {
49
+ background: repeating-linear-gradient(90deg, currentColor 0 8px, transparent 8px 11px, currentColor 11px 13px, transparent 13px 16px);
37
50
  }
38
- .line-type.long-dash {
39
- background-position: 50% -235px;
51
+ .line-type.long-dash::before {
52
+ background: repeating-linear-gradient(90deg, currentColor 0 14px, transparent 14px 19px);
40
53
  }
41
- .line-type.long-dash-dot {
42
- background-position: 50% -285px;
54
+ .line-type.long-dash-dot::before {
55
+ background: repeating-linear-gradient(90deg, currentColor 0 14px, transparent 14px 17px, currentColor 17px 19px, transparent 19px 22px);
43
56
  }
44
- .line-type.long-dash-dot-dot {
45
- background-position: 50% -335px;
57
+ .line-type.long-dash-dot-dot::before {
58
+ background: repeating-linear-gradient(90deg, currentColor 0 14px, transparent 14px 17px, currentColor 17px 19px, transparent 19px 22px, currentColor 22px 24px, transparent 24px 27px);
46
59
  }
47
60
 
48
61
  .arrow-type {
49
62
  background: var(--url-icon-properties-arrow-type) 50% 0 no-repeat;
50
- min-height: 30px;
51
- padding: 3px 7px;
63
+ min-height: 20px;
64
+ padding: 0 6px;
52
65
  }
53
66
  .arrow-type.begin-none {
54
67
  background-position: 50% 16px;
@@ -1 +1 @@
1
- {"version":3,"file":"line-styles.js","sourceRoot":"","sources":["../../src/line-styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,2CAA2C,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAC5G,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC,4CAA4C,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAE9G,SAAS,iBAAiB;IACxB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,iCAAiC,EAAE,OAAO,yBAAyB,GAAG,CAAC,CAAA;IACvG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,kCAAkC,EAAE,OAAO,0BAA0B,GAAG,CAAC,CAAA;AAC3G,CAAC;AAED,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;IACtC,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAA;AAClE,CAAC;KAAM,CAAC;IACN,iBAAiB,EAAE,CAAA;AACrB,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsI5B,CAAA","sourcesContent":["/**\n * @license Copyright ยฉ HatioLab Inc. All rights reserved.\n */\n\nimport { css } from 'lit'\n\nconst ICON_PROPERTIES_LINE_TYPE = new URL('../../icons/icon-properties-line-type.png', import.meta.url).href\nconst ICON_PROPERTIES_ARROW_TYPE = new URL('../../icons/icon-properties-arrow-type.png', import.meta.url).href\n\nfunction setIconProperties() {\n document.body.style.setProperty('--url-icon-properties-line-type', `url(${ICON_PROPERTIES_LINE_TYPE})`)\n document.body.style.setProperty('--url-icon-properties-arrow-type', `url(${ICON_PROPERTIES_ARROW_TYPE})`)\n}\n\nif (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', setIconProperties)\n} else {\n setIconProperties()\n}\n\nexport const LineStyles = css`\n .line-type {\n background: var(--url-icon-properties-line-type) 50% 0 no-repeat;\n min-height: 24px;\n padding: 3px 9px;\n }\n .line-type.solid {\n background-position: 50% 14px;\n }\n .line-type.round-dot {\n background-position: 50% -35px;\n }\n .line-type.square-dot {\n background-position: 50% -85px;\n }\n .line-type.dash {\n background-position: 50% -135px;\n }\n .line-type.dash-dot {\n background-position: 50% -185px;\n }\n .line-type.long-dash {\n background-position: 50% -235px;\n }\n .line-type.long-dash-dot {\n background-position: 50% -285px;\n }\n .line-type.long-dash-dot-dot {\n background-position: 50% -335px;\n }\n\n .arrow-type {\n background: var(--url-icon-properties-arrow-type) 50% 0 no-repeat;\n min-height: 30px;\n padding: 3px 7px;\n }\n .arrow-type.begin-none {\n background-position: 50% 16px;\n }\n .arrow-type.begin-arrow {\n background-position: 50% -39px;\n }\n .arrow-type.begin-open-arrow {\n background-position: 50% -89px;\n }\n .arrow-type.begin-sharp-arrow {\n background-position: 50% -139px;\n }\n .arrow-type.begin-diamond {\n background-position: 50% -190px;\n }\n .arrow-type.begin-oval {\n background-position: 50% -238px;\n }\n .arrow-type.begin-cross {\n background: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 50'%3E%3Cline x1='38' y1='25' x2='80' y2='25' stroke='%23888' stroke-width='2'/%3E%3Cline x1='24' y1='17' x2='36' y2='33' stroke='%23888' stroke-width='2'/%3E%3Cline x1='36' y1='17' x2='24' y2='33' stroke='%23888' stroke-width='2'/%3E%3C/svg%3E\") 50% center no-repeat;\n background-size: auto 100%;\n }\n .arrow-type.begin-size1 {\n background-position: 50% -286px;\n }\n .arrow-type.begin-size2 {\n background-position: 50% -336px;\n }\n .arrow-type.begin-size3 {\n background-position: 50% -386px;\n }\n .arrow-type.begin-size4 {\n background-position: 50% -436px;\n }\n .arrow-type.begin-size5 {\n background-position: 50% -486px;\n }\n .arrow-type.begin-size6 {\n background-position: 50% -536px;\n }\n .arrow-type.begin-size7 {\n background-position: 50% -589px;\n }\n .arrow-type.begin-size8 {\n background-position: 50% -639px;\n }\n .arrow-type.begin-size9 {\n background-position: 50% -689px;\n }\n .arrow-type.end-none {\n background-position: 50% 16px;\n }\n .arrow-type.end-arrow {\n background-position: 50% -739px;\n }\n .arrow-type.end-open-arrow {\n background-position: 50% -789px;\n }\n .arrow-type.end-sharp-arrow {\n background-position: 50% -839px;\n }\n .arrow-type.end-diamond {\n background-position: 50% -890px;\n }\n .arrow-type.end-oval {\n background-position: 50% -938px;\n }\n .arrow-type.end-cross {\n background: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 50'%3E%3Cline x1='20' y1='25' x2='62' y2='25' stroke='%23888' stroke-width='2'/%3E%3Cline x1='64' y1='17' x2='76' y2='33' stroke='%23888' stroke-width='2'/%3E%3Cline x1='76' y1='17' x2='64' y2='33' stroke='%23888' stroke-width='2'/%3E%3C/svg%3E\") 50% center no-repeat;\n background-size: auto 100%;\n }\n .arrow-type.end-size1 {\n background-position: 50% -986px;\n }\n .arrow-type.end-size2 {\n background-position: 50% -1036px;\n }\n .arrow-type.end-size3 {\n background-position: 50% -1086px;\n }\n .arrow-type.end-size4 {\n background-position: 50% -1136px;\n }\n .arrow-type.end-size5 {\n background-position: 50% -1186px;\n }\n .arrow-type.end-size6 {\n background-position: 50% -1236px;\n }\n .arrow-type.end-size7 {\n background-position: 50% -1289px;\n }\n .arrow-type.end-size8 {\n background-position: 50% -1339px;\n }\n .arrow-type.end-size9 {\n background-position: 50% -1389px;\n }\n`\n"]}
1
+ {"version":3,"file":"line-styles.js","sourceRoot":"","sources":["../../src/line-styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,2CAA2C,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAC5G,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC,4CAA4C,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAE9G,SAAS,iBAAiB;IACxB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,iCAAiC,EAAE,OAAO,yBAAyB,GAAG,CAAC,CAAA;IACvG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,kCAAkC,EAAE,OAAO,0BAA0B,GAAG,CAAC,CAAA;AAC3G,CAAC;AAED,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;IACtC,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAA;AAClE,CAAC;KAAM,CAAC;IACN,iBAAiB,EAAE,CAAA;AACrB,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmJ5B,CAAA","sourcesContent":["/**\n * @license Copyright ยฉ HatioLab Inc. All rights reserved.\n */\n\nimport { css } from 'lit'\n\nconst ICON_PROPERTIES_LINE_TYPE = new URL('../../icons/icon-properties-line-type.png', import.meta.url).href\nconst ICON_PROPERTIES_ARROW_TYPE = new URL('../../icons/icon-properties-arrow-type.png', import.meta.url).href\n\nfunction setIconProperties() {\n document.body.style.setProperty('--url-icon-properties-line-type', `url(${ICON_PROPERTIES_LINE_TYPE})`)\n document.body.style.setProperty('--url-icon-properties-arrow-type', `url(${ICON_PROPERTIES_ARROW_TYPE})`)\n}\n\nif (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', setIconProperties)\n} else {\n setIconProperties()\n}\n\nexport const LineStyles = css`\n /*\n * Line previews are drawn, not loaded: a 2px stroke in the current ink, dashed by CSS, so they\n * follow the scheme (the PNG sprite they replace was black on white in both).\n */\n .line-type {\n display: flex;\n align-items: center;\n min-height: 20px;\n padding: 0 6px;\n color: var(--md-sys-color-on-surface);\n }\n\n .line-type::before {\n content: '';\n display: block;\n width: 100%;\n height: 2px;\n background: currentColor;\n }\n\n .line-type.round-dot::before {\n height: 3px;\n background: radial-gradient(circle, currentColor 1.4px, transparent 1.6px) 0 0 / 6px 3px repeat-x;\n }\n .line-type.square-dot::before {\n background: repeating-linear-gradient(90deg, currentColor 0 3px, transparent 3px 6px);\n }\n .line-type.dash::before {\n background: repeating-linear-gradient(90deg, currentColor 0 8px, transparent 8px 12px);\n }\n .line-type.dash-dot::before {\n background: repeating-linear-gradient(90deg, currentColor 0 8px, transparent 8px 11px, currentColor 11px 13px, transparent 13px 16px);\n }\n .line-type.long-dash::before {\n background: repeating-linear-gradient(90deg, currentColor 0 14px, transparent 14px 19px);\n }\n .line-type.long-dash-dot::before {\n background: repeating-linear-gradient(90deg, currentColor 0 14px, transparent 14px 17px, currentColor 17px 19px, transparent 19px 22px);\n }\n .line-type.long-dash-dot-dot::before {\n background: repeating-linear-gradient(90deg, currentColor 0 14px, transparent 14px 17px, currentColor 17px 19px, transparent 19px 22px, currentColor 22px 24px, transparent 24px 27px);\n }\n\n .arrow-type {\n background: var(--url-icon-properties-arrow-type) 50% 0 no-repeat;\n min-height: 20px;\n padding: 0 6px;\n }\n .arrow-type.begin-none {\n background-position: 50% 16px;\n }\n .arrow-type.begin-arrow {\n background-position: 50% -39px;\n }\n .arrow-type.begin-open-arrow {\n background-position: 50% -89px;\n }\n .arrow-type.begin-sharp-arrow {\n background-position: 50% -139px;\n }\n .arrow-type.begin-diamond {\n background-position: 50% -190px;\n }\n .arrow-type.begin-oval {\n background-position: 50% -238px;\n }\n .arrow-type.begin-cross {\n background: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 50'%3E%3Cline x1='38' y1='25' x2='80' y2='25' stroke='%23888' stroke-width='2'/%3E%3Cline x1='24' y1='17' x2='36' y2='33' stroke='%23888' stroke-width='2'/%3E%3Cline x1='36' y1='17' x2='24' y2='33' stroke='%23888' stroke-width='2'/%3E%3C/svg%3E\") 50% center no-repeat;\n background-size: auto 100%;\n }\n .arrow-type.begin-size1 {\n background-position: 50% -286px;\n }\n .arrow-type.begin-size2 {\n background-position: 50% -336px;\n }\n .arrow-type.begin-size3 {\n background-position: 50% -386px;\n }\n .arrow-type.begin-size4 {\n background-position: 50% -436px;\n }\n .arrow-type.begin-size5 {\n background-position: 50% -486px;\n }\n .arrow-type.begin-size6 {\n background-position: 50% -536px;\n }\n .arrow-type.begin-size7 {\n background-position: 50% -589px;\n }\n .arrow-type.begin-size8 {\n background-position: 50% -639px;\n }\n .arrow-type.begin-size9 {\n background-position: 50% -689px;\n }\n .arrow-type.end-none {\n background-position: 50% 16px;\n }\n .arrow-type.end-arrow {\n background-position: 50% -739px;\n }\n .arrow-type.end-open-arrow {\n background-position: 50% -789px;\n }\n .arrow-type.end-sharp-arrow {\n background-position: 50% -839px;\n }\n .arrow-type.end-diamond {\n background-position: 50% -890px;\n }\n .arrow-type.end-oval {\n background-position: 50% -938px;\n }\n .arrow-type.end-cross {\n background: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 50'%3E%3Cline x1='20' y1='25' x2='62' y2='25' stroke='%23888' stroke-width='2'/%3E%3Cline x1='64' y1='17' x2='76' y2='33' stroke='%23888' stroke-width='2'/%3E%3Cline x1='76' y1='17' x2='64' y2='33' stroke='%23888' stroke-width='2'/%3E%3C/svg%3E\") 50% center no-repeat;\n background-size: auto 100%;\n }\n .arrow-type.end-size1 {\n background-position: 50% -986px;\n }\n .arrow-type.end-size2 {\n background-position: 50% -1036px;\n }\n .arrow-type.end-size3 {\n background-position: 50% -1086px;\n }\n .arrow-type.end-size4 {\n background-position: 50% -1136px;\n }\n .arrow-type.end-size5 {\n background-position: 50% -1186px;\n }\n .arrow-type.end-size6 {\n background-position: 50% -1236px;\n }\n .arrow-type.end-size7 {\n background-position: 50% -1289px;\n }\n .arrow-type.end-size8 {\n background-position: 50% -1339px;\n }\n .arrow-type.end-size9 {\n background-position: 50% -1389px;\n }\n`\n"]}