@mnaoumov/obsidian-lib 5.2.0 → 6.0.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.
Files changed (141) hide show
  1. package/dist/lib/cjs/@types/obsidian-integration-testing.d.cts +1 -1
  2. package/dist/lib/cjs/__merged.cjs +8 -24
  3. package/dist/lib/cjs/__merged.d.cts +4 -4
  4. package/dist/lib/cjs/async-with-notice.cjs +7 -7
  5. package/dist/lib/cjs/backlink-index.cjs +3 -3
  6. package/dist/lib/cjs/callout.cjs +2 -2
  7. package/dist/lib/cjs/case-insensitive-file-index.cjs +5 -5
  8. package/dist/lib/cjs/community-plugins.cjs +3 -3
  9. package/dist/lib/cjs/components/async-error-handler-component.cjs +2 -2
  10. package/dist/lib/cjs/components/monkey-around-component.cjs +3 -3
  11. package/dist/lib/cjs/components/plugin-context-component.cjs +1 -3
  12. package/dist/lib/cjs/components/plugin-context-component.d.cts +1 -2
  13. package/dist/lib/cjs/components/plugin-gate-component.cjs +15 -15
  14. package/dist/lib/cjs/components/plugin-notice-component.cjs +75 -7
  15. package/dist/lib/cjs/components/plugin-notice-component.d.cts +24 -1
  16. package/dist/lib/cjs/components/plugin-suggestion-component.cjs +7 -5
  17. package/dist/lib/cjs/components/release-notes-component.cjs +2 -2
  18. package/dist/lib/cjs/components/rename-delete-handler-component.cjs +10 -10
  19. package/dist/lib/cjs/css-class.cjs +2 -2
  20. package/dist/lib/cjs/css-class.d.cts +8 -11
  21. package/dist/lib/cjs/dataview.cjs +4 -4
  22. package/dist/lib/cjs/debug.cjs +2 -22
  23. package/dist/lib/cjs/debug.d.cts +0 -5
  24. package/dist/lib/cjs/frontmatter.cjs +3 -3
  25. package/dist/lib/cjs/frontmatter.d.cts +1 -1
  26. package/dist/lib/cjs/generated-during-build.cjs +2 -2
  27. package/dist/lib/cjs/html-element.cjs +1 -1
  28. package/dist/lib/cjs/html-element.d.cts +1 -1
  29. package/dist/lib/cjs/i18n/i18n.cjs +1 -1
  30. package/dist/lib/cjs/i18n/i18n.d.cts +1 -1
  31. package/dist/lib/cjs/i18n/locales/en.cjs +2 -2
  32. package/dist/lib/cjs/i18n/locales/en.d.cts +1 -1
  33. package/dist/lib/cjs/i18n/locales/translations-map.d.cts +1 -1
  34. package/dist/lib/cjs/index.cjs +4 -4
  35. package/dist/lib/cjs/index.d.cts +1 -1
  36. package/dist/lib/cjs/library-styles.cjs +7 -14
  37. package/dist/lib/cjs/library-styles.d.cts +9 -23
  38. package/dist/lib/cjs/library.cjs +1 -4
  39. package/dist/lib/cjs/library.d.cts +3 -11
  40. package/dist/lib/cjs/link.cjs +3 -3
  41. package/dist/lib/cjs/markdown.cjs +3 -3
  42. package/dist/lib/cjs/metadata-cache.cjs +4 -4
  43. package/dist/lib/cjs/modals/alert.cjs +2 -2
  44. package/dist/lib/cjs/modals/confirm.cjs +3 -3
  45. package/dist/lib/cjs/modals/prompt.cjs +3 -3
  46. package/dist/lib/cjs/obsidian-lib-state.cjs +148 -0
  47. package/dist/lib/cjs/obsidian-lib-state.d.cts +30 -0
  48. package/dist/lib/cjs/path-settings.cjs +6 -6
  49. package/dist/lib/cjs/plugin/index.cjs +1 -4
  50. package/dist/lib/cjs/plugin/index.d.cts +0 -1
  51. package/dist/lib/cjs/plugin/plugin-api.cjs +3 -3
  52. package/dist/lib/cjs/plugin/plugin-api.d.cts +5 -41
  53. package/dist/lib/cjs/plugin/plugin-context.cjs +1 -6
  54. package/dist/lib/cjs/plugin/plugin-install-state.cjs +5 -5
  55. package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +1 -40
  56. package/dist/lib/cjs/plugin/plugin-lifecycle-events.d.cts +8 -62
  57. package/dist/lib/cjs/plugin/plugin.cjs +2 -2
  58. package/dist/lib/cjs/plugin/plugin.d.cts +1 -1
  59. package/dist/lib/cjs/popovers/popover.cjs +3 -3
  60. package/dist/lib/cjs/queue.cjs +4 -4
  61. package/dist/lib/cjs/resource-lock.cjs +9 -9
  62. package/dist/lib/cjs/vault-delete.cjs +2 -2
  63. package/dist/lib/cjs/vault-transaction.cjs +17 -2
  64. package/dist/lib/cjs/vault-transaction.d.cts +2 -1
  65. package/dist/lib/cjs/vault.cjs +2 -2
  66. package/dist/lib/esm/@types/obsidian-integration-testing.d.mts +1 -1
  67. package/dist/lib/esm/__merged.d.mts +4 -4
  68. package/dist/lib/esm/__merged.mjs +8 -24
  69. package/dist/lib/esm/async-with-notice.mjs +7 -7
  70. package/dist/lib/esm/backlink-index.mjs +3 -3
  71. package/dist/lib/esm/callout.mjs +2 -2
  72. package/dist/lib/esm/case-insensitive-file-index.mjs +5 -5
  73. package/dist/lib/esm/community-plugins.mjs +3 -3
  74. package/dist/lib/esm/components/async-error-handler-component.mjs +2 -2
  75. package/dist/lib/esm/components/monkey-around-component.mjs +3 -3
  76. package/dist/lib/esm/components/plugin-context-component.d.mts +1 -2
  77. package/dist/lib/esm/components/plugin-context-component.mjs +1 -3
  78. package/dist/lib/esm/components/plugin-gate-component.mjs +15 -15
  79. package/dist/lib/esm/components/plugin-notice-component.d.mts +24 -1
  80. package/dist/lib/esm/components/plugin-notice-component.mjs +75 -7
  81. package/dist/lib/esm/components/plugin-suggestion-component.mjs +7 -5
  82. package/dist/lib/esm/components/release-notes-component.mjs +2 -2
  83. package/dist/lib/esm/components/rename-delete-handler-component.mjs +10 -10
  84. package/dist/lib/esm/css-class.d.mts +8 -11
  85. package/dist/lib/esm/css-class.mjs +2 -2
  86. package/dist/lib/esm/dataview.mjs +4 -4
  87. package/dist/lib/esm/debug.d.mts +0 -5
  88. package/dist/lib/esm/debug.mjs +3 -26
  89. package/dist/lib/esm/frontmatter.d.mts +1 -1
  90. package/dist/lib/esm/frontmatter.mjs +3 -3
  91. package/dist/lib/esm/generated-during-build.mjs +2 -2
  92. package/dist/lib/esm/html-element.d.mts +1 -1
  93. package/dist/lib/esm/html-element.mjs +1 -1
  94. package/dist/lib/esm/i18n/i18n.d.mts +1 -1
  95. package/dist/lib/esm/i18n/i18n.mjs +1 -1
  96. package/dist/lib/esm/i18n/locales/en.d.mts +1 -1
  97. package/dist/lib/esm/i18n/locales/en.mjs +2 -2
  98. package/dist/lib/esm/i18n/locales/translations-map.d.mts +1 -1
  99. package/dist/lib/esm/index.d.mts +1 -1
  100. package/dist/lib/esm/index.mjs +3 -3
  101. package/dist/lib/esm/library-styles.d.mts +9 -23
  102. package/dist/lib/esm/library-styles.mjs +7 -12
  103. package/dist/lib/esm/library.d.mts +3 -11
  104. package/dist/lib/esm/library.mjs +1 -3
  105. package/dist/lib/esm/link.mjs +3 -3
  106. package/dist/lib/esm/markdown.mjs +3 -3
  107. package/dist/lib/esm/metadata-cache.mjs +4 -4
  108. package/dist/lib/esm/modals/alert.mjs +2 -2
  109. package/dist/lib/esm/modals/confirm.mjs +3 -3
  110. package/dist/lib/esm/modals/prompt.mjs +3 -3
  111. package/dist/lib/esm/obsidian-lib-state.d.mts +30 -0
  112. package/dist/lib/esm/obsidian-lib-state.mjs +59 -0
  113. package/dist/lib/esm/path-settings.mjs +6 -6
  114. package/dist/lib/esm/plugin/index.d.mts +0 -1
  115. package/dist/lib/esm/plugin/index.mjs +1 -3
  116. package/dist/lib/esm/plugin/plugin-api.d.mts +5 -41
  117. package/dist/lib/esm/plugin/plugin-api.mjs +3 -3
  118. package/dist/lib/esm/plugin/plugin-context.mjs +1 -7
  119. package/dist/lib/esm/plugin/plugin-install-state.mjs +5 -5
  120. package/dist/lib/esm/plugin/plugin-lifecycle-events.d.mts +8 -62
  121. package/dist/lib/esm/plugin/plugin-lifecycle-events.mjs +1 -37
  122. package/dist/lib/esm/plugin/plugin.d.mts +1 -1
  123. package/dist/lib/esm/plugin/plugin.mjs +2 -2
  124. package/dist/lib/esm/popovers/popover.mjs +3 -3
  125. package/dist/lib/esm/queue.mjs +4 -4
  126. package/dist/lib/esm/resource-lock.mjs +9 -9
  127. package/dist/lib/esm/vault-delete.mjs +2 -2
  128. package/dist/lib/esm/vault-transaction.d.mts +2 -1
  129. package/dist/lib/esm/vault-transaction.mjs +17 -2
  130. package/dist/lib/esm/vault.mjs +2 -2
  131. package/dist/styles.css +174 -168
  132. package/package.json +1 -1
  133. package/dist/lib/cjs/obsidian-dev-utils-state.cjs +0 -177
  134. package/dist/lib/cjs/obsidian-dev-utils-state.d.cts +0 -50
  135. package/dist/lib/cjs/plugin/plugin-api-schema.cjs +0 -127
  136. package/dist/lib/cjs/plugin/plugin-api-schema.d.cts +0 -37
  137. package/dist/lib/esm/obsidian-dev-utils-state.d.mts +0 -50
  138. package/dist/lib/esm/obsidian-dev-utils-state.mjs +0 -86
  139. package/dist/lib/esm/plugin/plugin-api-schema.d.mts +0 -37
  140. package/dist/lib/esm/plugin/plugin-api-schema.mjs +0 -41
  141. package/plugin/plugin-api-schema/package.json +0 -6
package/dist/styles.css CHANGED
@@ -1,19 +1,19 @@
1
- .obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component pre, .obsidian-dev-utils.code-highlighter-component code {
1
+ .obsidian-lib.code-highlighter-component textarea, .obsidian-lib.code-highlighter-component pre, .obsidian-lib.code-highlighter-component code {
2
2
  font-family: var(--font-monospace);
3
3
  line-height: var(--line-height-normal);
4
4
  margin: 0;
5
5
  }
6
- .obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component code {
6
+ .obsidian-lib.code-highlighter-component textarea, .obsidian-lib.code-highlighter-component code {
7
7
  font-size: var(--code-size);
8
8
  }
9
- .obsidian-dev-utils.code-highlighter-component textarea {
9
+ .obsidian-lib.code-highlighter-component textarea {
10
10
  background: transparent;
11
11
  color: transparent;
12
12
  z-index: 2;
13
13
  width: 20em;
14
14
  height: 10em;
15
15
  }
16
- .obsidian-dev-utils.code-highlighter-component pre {
16
+ .obsidian-lib.code-highlighter-component pre {
17
17
  position: absolute;
18
18
  pointer-events: none;
19
19
  border: var(--input-border-width) solid transparent;
@@ -22,47 +22,47 @@
22
22
  padding: var(--size-4-1) var(--size-4-2);
23
23
  z-index: 1;
24
24
  }
25
- .obsidian-dev-utils.code-highlighter-component pre::after {
25
+ .obsidian-lib.code-highlighter-component pre::after {
26
26
  content: "";
27
27
  display: block;
28
28
  height: var(--bottom-gap, 0);
29
29
  }
30
- .obsidian-dev-utils.code-highlighter-component pre.is-placeholder {
30
+ .obsidian-lib.code-highlighter-component pre.is-placeholder {
31
31
  opacity: 0.6;
32
32
  }
33
- .obsidian-dev-utils.code-highlighter-component code {
33
+ .obsidian-lib.code-highlighter-component code {
34
34
  display: block;
35
35
  padding: 0;
36
36
  }
37
37
 
38
- .obsidian-dev-utils-lock-indicator {
38
+ .obsidian-lib-lock-indicator {
39
39
  display: inline-flex;
40
40
  align-items: center;
41
41
  color: var(--text-muted);
42
42
  }
43
- .obsidian-dev-utils-lock-indicator .svg-icon {
43
+ .obsidian-lib-lock-indicator .svg-icon {
44
44
  width: var(--icon-s);
45
45
  height: var(--icon-s);
46
46
  }
47
47
 
48
- @keyframes obsidian-dev-utils-lock-indicator-flash {
48
+ @keyframes obsidian-lib-lock-indicator-flash {
49
49
  40% {
50
50
  color: var(--text-error);
51
51
  transform: scale(1.4);
52
52
  }
53
53
  }
54
- .obsidian-dev-utils-lock-indicator-flash {
55
- animation: obsidian-dev-utils-lock-indicator-flash 0.35s ease-in-out;
54
+ .obsidian-lib-lock-indicator-flash {
55
+ animation: obsidian-lib-lock-indicator-flash 0.35s ease-in-out;
56
56
  }
57
57
 
58
- .obsidian-dev-utils input[type=url] {
58
+ .obsidian-lib input[type=url] {
59
59
  height: var(--input-height);
60
60
  }
61
- .obsidian-dev-utils input[type=month],
62
- .obsidian-dev-utils input[type=tel],
63
- .obsidian-dev-utils input[type=time],
64
- .obsidian-dev-utils input[type=url],
65
- .obsidian-dev-utils input[type=week] {
61
+ .obsidian-lib input[type=month],
62
+ .obsidian-lib input[type=tel],
63
+ .obsidian-lib input[type=time],
64
+ .obsidian-lib input[type=url],
65
+ .obsidian-lib input[type=week] {
66
66
  -webkit-app-region: no-drag;
67
67
  background: var(--background-modifier-form-field);
68
68
  border: var(--input-border-width) solid var(--background-modifier-border);
@@ -74,47 +74,47 @@
74
74
  outline: none;
75
75
  }
76
76
  @media (hover: hover) {
77
- .obsidian-dev-utils input[type=month]:hover,
78
- .obsidian-dev-utils input[type=tel]:hover,
79
- .obsidian-dev-utils input[type=time]:hover,
80
- .obsidian-dev-utils input[type=url]:hover,
81
- .obsidian-dev-utils input[type=week]:hover {
77
+ .obsidian-lib input[type=month]:hover,
78
+ .obsidian-lib input[type=tel]:hover,
79
+ .obsidian-lib input[type=time]:hover,
80
+ .obsidian-lib input[type=url]:hover,
81
+ .obsidian-lib input[type=week]:hover {
82
82
  border-color: var(--background-modifier-border-hover);
83
83
  transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;
84
84
  }
85
85
  }
86
- .obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus,
87
- .obsidian-dev-utils input[type=tel]:active,
88
- .obsidian-dev-utils input[type=tel]:focus,
89
- .obsidian-dev-utils input[type=time]:active,
90
- .obsidian-dev-utils input[type=time]:focus,
91
- .obsidian-dev-utils input[type=url]:active,
92
- .obsidian-dev-utils input[type=url]:focus,
93
- .obsidian-dev-utils input[type=week]:active,
94
- .obsidian-dev-utils input[type=week]:focus {
86
+ .obsidian-lib input[type=month]:active, .obsidian-lib input[type=month]:focus,
87
+ .obsidian-lib input[type=tel]:active,
88
+ .obsidian-lib input[type=tel]:focus,
89
+ .obsidian-lib input[type=time]:active,
90
+ .obsidian-lib input[type=time]:focus,
91
+ .obsidian-lib input[type=url]:active,
92
+ .obsidian-lib input[type=url]:focus,
93
+ .obsidian-lib input[type=week]:active,
94
+ .obsidian-lib input[type=week]:focus {
95
95
  border-color: var(--background-modifier-border-focus);
96
96
  transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;
97
97
  }
98
- .obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus, .obsidian-dev-utils input[type=month]:focus-visible,
99
- .obsidian-dev-utils input[type=tel]:active,
100
- .obsidian-dev-utils input[type=tel]:focus,
101
- .obsidian-dev-utils input[type=tel]:focus-visible,
102
- .obsidian-dev-utils input[type=time]:active,
103
- .obsidian-dev-utils input[type=time]:focus,
104
- .obsidian-dev-utils input[type=time]:focus-visible,
105
- .obsidian-dev-utils input[type=url]:active,
106
- .obsidian-dev-utils input[type=url]:focus,
107
- .obsidian-dev-utils input[type=url]:focus-visible,
108
- .obsidian-dev-utils input[type=week]:active,
109
- .obsidian-dev-utils input[type=week]:focus,
110
- .obsidian-dev-utils input[type=week]:focus-visible {
98
+ .obsidian-lib input[type=month]:active, .obsidian-lib input[type=month]:focus, .obsidian-lib input[type=month]:focus-visible,
99
+ .obsidian-lib input[type=tel]:active,
100
+ .obsidian-lib input[type=tel]:focus,
101
+ .obsidian-lib input[type=tel]:focus-visible,
102
+ .obsidian-lib input[type=time]:active,
103
+ .obsidian-lib input[type=time]:focus,
104
+ .obsidian-lib input[type=time]:focus-visible,
105
+ .obsidian-lib input[type=url]:active,
106
+ .obsidian-lib input[type=url]:focus,
107
+ .obsidian-lib input[type=url]:focus-visible,
108
+ .obsidian-lib input[type=week]:active,
109
+ .obsidian-lib input[type=week]:focus,
110
+ .obsidian-lib input[type=week]:focus-visible {
111
111
  box-shadow: 0 0 0 2px var(--background-modifier-border-focus);
112
112
  }
113
- .obsidian-dev-utils input[type=month]::placeholder,
114
- .obsidian-dev-utils input[type=tel]::placeholder,
115
- .obsidian-dev-utils input[type=time]::placeholder,
116
- .obsidian-dev-utils input[type=url]::placeholder,
117
- .obsidian-dev-utils input[type=week]::placeholder {
113
+ .obsidian-lib input[type=month]::placeholder,
114
+ .obsidian-lib input[type=tel]::placeholder,
115
+ .obsidian-lib input[type=time]::placeholder,
116
+ .obsidian-lib input[type=url]::placeholder,
117
+ .obsidian-lib input[type=week]::placeholder {
118
118
  color: var(--text-faint);
119
119
  }
120
120
  .mod-rtl input[type=month],
@@ -141,78 +141,78 @@
141
141
  left: auto;
142
142
  }
143
143
 
144
- .obsidian-dev-utils input[type=month],
145
- .obsidian-dev-utils input[type=time],
146
- .obsidian-dev-utils input[type=week] {
144
+ .obsidian-lib input[type=month],
145
+ .obsidian-lib input[type=time],
146
+ .obsidian-lib input[type=week] {
147
147
  font-variant-numeric: tabular-nums;
148
148
  position: relative;
149
149
  }
150
- .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-text,
151
- .obsidian-dev-utils input[type=time]::-webkit-datetime-edit-text,
152
- .obsidian-dev-utils input[type=week]::-webkit-datetime-edit-text {
150
+ .obsidian-lib input[type=month]::-webkit-datetime-edit-text,
151
+ .obsidian-lib input[type=time]::-webkit-datetime-edit-text,
152
+ .obsidian-lib input[type=week]::-webkit-datetime-edit-text {
153
153
  color: var(--text-faint);
154
154
  padding-inline-end: 0;
155
155
  }
156
- .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,
157
- .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,
158
- .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {
156
+ .obsidian-lib input[type=month]::-webkit-calendar-picker-indicator,
157
+ .obsidian-lib input[type=time]::-webkit-calendar-picker-indicator,
158
+ .obsidian-lib input[type=week]::-webkit-calendar-picker-indicator {
159
159
  position: absolute;
160
160
  left: var(--size-4-1);
161
161
  right: auto;
162
162
  opacity: 0.5;
163
163
  }
164
- .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:focus,
165
- .obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:active,
166
- .obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:focus,
167
- .obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:active,
168
- .obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:focus,
169
- .obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:active,
170
- .obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:focus,
171
- .obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:active,
172
- .obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:focus,
173
- .obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:active,
174
- .obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:focus,
175
- .obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:active,
176
- .obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:focus {
164
+ .obsidian-lib input[type=month]::-webkit-datetime-edit-month-field:active, .obsidian-lib input[type=month]::-webkit-datetime-edit-month-field:focus, .obsidian-lib input[type=month]::-webkit-datetime-edit-day-field:active, .obsidian-lib input[type=month]::-webkit-datetime-edit-day-field:focus, .obsidian-lib input[type=month]::-webkit-datetime-edit-year-field:active, .obsidian-lib input[type=month]::-webkit-datetime-edit-year-field:focus,
165
+ .obsidian-lib input[type=time]::-webkit-datetime-edit-month-field:active,
166
+ .obsidian-lib input[type=time]::-webkit-datetime-edit-month-field:focus,
167
+ .obsidian-lib input[type=time]::-webkit-datetime-edit-day-field:active,
168
+ .obsidian-lib input[type=time]::-webkit-datetime-edit-day-field:focus,
169
+ .obsidian-lib input[type=time]::-webkit-datetime-edit-year-field:active,
170
+ .obsidian-lib input[type=time]::-webkit-datetime-edit-year-field:focus,
171
+ .obsidian-lib input[type=week]::-webkit-datetime-edit-month-field:active,
172
+ .obsidian-lib input[type=week]::-webkit-datetime-edit-month-field:focus,
173
+ .obsidian-lib input[type=week]::-webkit-datetime-edit-day-field:active,
174
+ .obsidian-lib input[type=week]::-webkit-datetime-edit-day-field:focus,
175
+ .obsidian-lib input[type=week]::-webkit-datetime-edit-year-field:active,
176
+ .obsidian-lib input[type=week]::-webkit-datetime-edit-year-field:focus {
177
177
  background-color: var(--text-selection);
178
178
  color: var(--text-normal);
179
179
  cursor: text;
180
180
  }
181
- .mod-rtl .obsidian-dev-utils input[type=month], .is-rtl .obsidian-dev-utils input[type=month], .rtl .obsidian-dev-utils input[type=month],
182
- .mod-rtl .obsidian-dev-utils input[type=time],
183
- .is-rtl .obsidian-dev-utils input[type=time],
184
- .rtl .obsidian-dev-utils input[type=time],
185
- .mod-rtl .obsidian-dev-utils input[type=week],
186
- .is-rtl .obsidian-dev-utils input[type=week],
187
- .rtl .obsidian-dev-utils input[type=week] {
181
+ .mod-rtl .obsidian-lib input[type=month], .is-rtl .obsidian-lib input[type=month], .rtl .obsidian-lib input[type=month],
182
+ .mod-rtl .obsidian-lib input[type=time],
183
+ .is-rtl .obsidian-lib input[type=time],
184
+ .rtl .obsidian-lib input[type=time],
185
+ .mod-rtl .obsidian-lib input[type=week],
186
+ .is-rtl .obsidian-lib input[type=week],
187
+ .rtl .obsidian-lib input[type=week] {
188
188
  direction: rtl;
189
189
  }
190
- .mod-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .is-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,
191
- .mod-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,
192
- .is-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,
193
- .rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,
194
- .mod-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,
195
- .is-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,
196
- .rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {
190
+ .mod-rtl .obsidian-lib input[type=month]::-webkit-calendar-picker-indicator, .is-rtl .obsidian-lib input[type=month]::-webkit-calendar-picker-indicator, .rtl .obsidian-lib input[type=month]::-webkit-calendar-picker-indicator,
191
+ .mod-rtl .obsidian-lib input[type=time]::-webkit-calendar-picker-indicator,
192
+ .is-rtl .obsidian-lib input[type=time]::-webkit-calendar-picker-indicator,
193
+ .rtl .obsidian-lib input[type=time]::-webkit-calendar-picker-indicator,
194
+ .mod-rtl .obsidian-lib input[type=week]::-webkit-calendar-picker-indicator,
195
+ .is-rtl .obsidian-lib input[type=week]::-webkit-calendar-picker-indicator,
196
+ .rtl .obsidian-lib input[type=week]::-webkit-calendar-picker-indicator {
197
197
  left: auto;
198
198
  right: var(--size-4-1);
199
199
  }
200
200
 
201
- body:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=month],
202
- body:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=time],
203
- body:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=week] {
201
+ body:not(.is-ios):not(.is-android) .obsidian-lib input[type=month],
202
+ body:not(.is-ios):not(.is-android) .obsidian-lib input[type=time],
203
+ body:not(.is-ios):not(.is-android) .obsidian-lib input[type=week] {
204
204
  padding-inline-start: var(--size-4-6);
205
205
  }
206
206
 
207
- .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator {
207
+ .obsidian-lib input[type=time]::-webkit-calendar-picker-indicator {
208
208
  margin-inline-start: 0;
209
209
  }
210
210
 
211
- progress.obsidian-dev-utils.loop {
211
+ progress.obsidian-lib.loop {
212
212
  min-width: 200px;
213
213
  }
214
214
 
215
- @keyframes obsidian-dev-utils-minimized-modal-bar-pulse {
215
+ @keyframes obsidian-lib-minimized-modal-bar-pulse {
216
216
  0%, 100% {
217
217
  box-shadow: var(--shadow-s);
218
218
  }
@@ -220,7 +220,7 @@ progress.obsidian-dev-utils.loop {
220
220
  box-shadow: 0 0 0 2px var(--interactive-accent);
221
221
  }
222
222
  }
223
- @keyframes obsidian-dev-utils-minimized-modal-bar-attention {
223
+ @keyframes obsidian-lib-minimized-modal-bar-attention {
224
224
  0% {
225
225
  box-shadow: 0 0 0 0 var(--interactive-accent);
226
226
  }
@@ -231,7 +231,7 @@ progress.obsidian-dev-utils.loop {
231
231
  box-shadow: var(--shadow-s);
232
232
  }
233
233
  }
234
- .obsidian-dev-utils.minimizable-modal .minimize-button {
234
+ .obsidian-lib.minimizable-modal .minimize-button {
235
235
  position: absolute;
236
236
  top: var(--size-4-2);
237
237
  right: calc(var(--size-4-2) + var(--size-4-9));
@@ -246,11 +246,11 @@ progress.obsidian-dev-utils.loop {
246
246
  cursor: pointer;
247
247
  box-shadow: none;
248
248
  }
249
- .obsidian-dev-utils.minimizable-modal .minimize-button:hover {
249
+ .obsidian-lib.minimizable-modal .minimize-button:hover {
250
250
  background: var(--background-modifier-hover);
251
251
  color: var(--icon-color-hover);
252
252
  }
253
- .obsidian-dev-utils.minimized-modal-bar {
253
+ .obsidian-lib.minimized-modal-bar {
254
254
  position: fixed;
255
255
  right: var(--size-4-4);
256
256
  bottom: calc(var(--size-4-4) + var(--size-4-8));
@@ -264,19 +264,19 @@ progress.obsidian-dev-utils.loop {
264
264
  background: var(--background-secondary);
265
265
  box-shadow: var(--shadow-s);
266
266
  cursor: pointer;
267
- animation: obsidian-dev-utils-minimized-modal-bar-pulse 2s ease-in-out infinite;
267
+ animation: obsidian-lib-minimized-modal-bar-pulse 2s ease-in-out infinite;
268
268
  }
269
- .obsidian-dev-utils.minimized-modal-bar:hover {
269
+ .obsidian-lib.minimized-modal-bar:hover {
270
270
  background-image: linear-gradient(var(--background-modifier-hover), var(--background-modifier-hover));
271
271
  }
272
- .obsidian-dev-utils.minimized-modal-bar.minimized-modal-bar-attention {
273
- animation: obsidian-dev-utils-minimized-modal-bar-attention 0.35s ease-out;
272
+ .obsidian-lib.minimized-modal-bar.minimized-modal-bar-attention {
273
+ animation: obsidian-lib-minimized-modal-bar-attention 0.35s ease-out;
274
274
  }
275
- .obsidian-dev-utils.minimized-modal-bar .minimized-modal-bar-title {
275
+ .obsidian-lib.minimized-modal-bar .minimized-modal-bar-title {
276
276
  font-weight: var(--font-medium);
277
277
  }
278
- .obsidian-dev-utils.minimized-modal-bar .restore-button,
279
- .obsidian-dev-utils.minimized-modal-bar .cancel-button {
278
+ .obsidian-lib.minimized-modal-bar .restore-button,
279
+ .obsidian-lib.minimized-modal-bar .cancel-button {
280
280
  display: flex;
281
281
  align-items: center;
282
282
  justify-content: center;
@@ -288,24 +288,24 @@ progress.obsidian-dev-utils.loop {
288
288
  cursor: pointer;
289
289
  box-shadow: none;
290
290
  }
291
- .obsidian-dev-utils.minimized-modal-bar .restore-button:hover,
292
- .obsidian-dev-utils.minimized-modal-bar .cancel-button:hover {
291
+ .obsidian-lib.minimized-modal-bar .restore-button:hover,
292
+ .obsidian-lib.minimized-modal-bar .cancel-button:hover {
293
293
  background: var(--background-modifier-hover);
294
294
  color: var(--icon-color-hover);
295
295
  }
296
296
 
297
- .obsidian-dev-utils.modal-commands {
297
+ .obsidian-lib.modal-commands {
298
298
  display: flex;
299
299
  flex-wrap: wrap;
300
300
  gap: var(--size-2-2);
301
301
  padding: var(--size-4-2) var(--size-4-3);
302
302
  border-top: 1px solid var(--background-modifier-border);
303
303
  }
304
- .obsidian-dev-utils.modal-command-control {
304
+ .obsidian-lib.modal-command-control {
305
305
  margin-inline-start: var(--size-2-2);
306
306
  vertical-align: middle;
307
307
  }
308
- .obsidian-dev-utils.modal-command {
308
+ .obsidian-lib.modal-command {
309
309
  display: inline-flex;
310
310
  align-items: baseline;
311
311
  gap: var(--size-2-2);
@@ -319,81 +319,81 @@ progress.obsidian-dev-utils.loop {
319
319
  white-space: nowrap;
320
320
  cursor: pointer;
321
321
  }
322
- .obsidian-dev-utils.modal-command:hover:not(:disabled) {
322
+ .obsidian-lib.modal-command:hover:not(:disabled) {
323
323
  background-color: var(--background-modifier-hover);
324
324
  color: var(--text-normal);
325
325
  }
326
- .obsidian-dev-utils.modal-command.is-active {
326
+ .obsidian-lib.modal-command.is-active {
327
327
  border-color: var(--interactive-accent);
328
328
  background-color: var(--interactive-accent);
329
329
  color: var(--text-on-accent);
330
330
  }
331
- .obsidian-dev-utils.modal-command:disabled {
331
+ .obsidian-lib.modal-command:disabled {
332
332
  opacity: 0.5;
333
333
  cursor: default;
334
334
  }
335
- .obsidian-dev-utils.modal-command-hotkey {
335
+ .obsidian-lib.modal-command-hotkey {
336
336
  color: var(--text-faint);
337
337
  font-size: var(--font-smallest);
338
338
  }
339
- .modal-command.is-active .obsidian-dev-utils.modal-command-hotkey {
339
+ .modal-command.is-active .obsidian-lib.modal-command-hotkey {
340
340
  opacity: 0.7;
341
341
  color: var(--text-on-accent);
342
342
  }
343
343
 
344
- .obsidian-dev-utils.modal-container .ok-button {
344
+ .obsidian-lib.modal-container .ok-button {
345
345
  margin-right: 10px;
346
346
  margin-top: 20px;
347
347
  }
348
348
 
349
- .obsidian-dev-utils.multiple-dropdown-component select,
350
- .obsidian-dev-utils.multiple-dropdown-component select:focus,
351
- .obsidian-dev-utils.multiple-dropdown-component .dropdown {
349
+ .obsidian-lib.multiple-dropdown-component select,
350
+ .obsidian-lib.multiple-dropdown-component select:focus,
351
+ .obsidian-lib.multiple-dropdown-component .dropdown {
352
352
  height: auto;
353
353
  padding-top: 3px;
354
354
  }
355
- .obsidian-dev-utils.multiple-dropdown-component select option:checked,
356
- .obsidian-dev-utils.multiple-dropdown-component select:focus option:checked,
357
- .obsidian-dev-utils.multiple-dropdown-component .dropdown option:checked {
355
+ .obsidian-lib.multiple-dropdown-component select option:checked,
356
+ .obsidian-lib.multiple-dropdown-component select:focus option:checked,
357
+ .obsidian-lib.multiple-dropdown-component .dropdown option:checked {
358
358
  background-color: var(--interactive-accent);
359
359
  color: var(--text-on-accent);
360
360
  }
361
361
 
362
- .obsidian-dev-utils.plugin-notice-name {
362
+ .obsidian-lib.plugin-notice-name {
363
363
  color: var(--text-accent);
364
364
  display: inline-block;
365
365
  font-weight: var(--font-bold);
366
366
  margin-bottom: var(--size-4-2);
367
367
  }
368
- .obsidian-dev-utils.plugin-notice-name code {
368
+ .obsidian-lib.plugin-notice-name code {
369
369
  color: inherit;
370
370
  }
371
- .obsidian-dev-utils.plugin-notice-content {
371
+ .obsidian-lib.plugin-notice-content {
372
372
  padding-right: var(--size-4-5);
373
373
  position: relative;
374
374
  }
375
- .obsidian-dev-utils.plugin-notice-content .obsidian-dev-utils.cancel-button {
375
+ .obsidian-lib.plugin-notice-content .obsidian-lib.cancel-button {
376
376
  display: block;
377
377
  margin-top: var(--size-4-2);
378
378
  width: fit-content;
379
379
  }
380
- .obsidian-dev-utils.plugin-notice-content .obsidian-dev-utils.plugin-notice-close-button {
380
+ .obsidian-lib.plugin-notice-content .obsidian-lib.plugin-notice-close-button {
381
381
  position: absolute;
382
382
  right: var(--size-4-3);
383
383
  top: var(--size-4-3);
384
384
  }
385
- .obsidian-dev-utils.plugin-notice-requires-explicit-close.notice {
385
+ .obsidian-lib.plugin-notice-requires-explicit-close.notice {
386
386
  padding: 0;
387
387
  }
388
- .obsidian-dev-utils.plugin-notice-requires-explicit-close.notice .obsidian-dev-utils.plugin-notice-content {
388
+ .obsidian-lib.plugin-notice-requires-explicit-close.notice .obsidian-lib.plugin-notice-content {
389
389
  padding: var(--size-4-3) var(--size-4-4);
390
390
  }
391
391
 
392
- .obsidian-dev-utils.plugin-settings-tab a:focus {
392
+ .obsidian-lib.plugin-settings-tab a:focus {
393
393
  outline: 2px solid var(--link-color);
394
394
  }
395
395
 
396
- .obsidian-dev-utils.plugin-suggestion-banner {
396
+ .obsidian-lib.plugin-suggestion-banner {
397
397
  background-color: var(--background-secondary);
398
398
  border-left: var(--size-2-1) solid var(--text-accent);
399
399
  border-radius: var(--radius-s);
@@ -403,81 +403,87 @@ progress.obsidian-dev-utils.loop {
403
403
  margin-bottom: var(--size-4-4);
404
404
  padding: var(--size-4-3) var(--size-4-4);
405
405
  }
406
- .obsidian-dev-utils.plugin-suggestion-banner button {
406
+ .obsidian-lib.plugin-suggestion-banner button {
407
407
  width: fit-content;
408
408
  }
409
+ .obsidian-lib.plugin-suggestion-notice-buttons {
410
+ display: flex;
411
+ flex-wrap: wrap;
412
+ gap: var(--size-4-2);
413
+ margin-top: var(--size-4-2);
414
+ }
409
415
 
410
- .obsidian-dev-utils.popover {
416
+ .obsidian-lib.popover {
411
417
  max-width: min(420px, 90vw);
412
418
  min-width: 320px;
413
419
  padding: var(--size-4-2) var(--size-4-3);
414
420
  position: absolute;
415
421
  z-index: var(--layer-menu);
416
422
  }
417
- .obsidian-dev-utils.popover .setting-item {
423
+ .obsidian-lib.popover .setting-item {
418
424
  align-items: center;
419
425
  border-top: none;
420
426
  gap: var(--size-4-2);
421
427
  padding: var(--size-2-1) 0;
422
428
  }
423
- .obsidian-dev-utils.popover .setting-item-info {
429
+ .obsidian-lib.popover .setting-item-info {
424
430
  margin-right: 0;
425
431
  }
426
- .obsidian-dev-utils.popover .setting-item-control {
432
+ .obsidian-lib.popover .setting-item-control {
427
433
  flex-grow: 1;
428
434
  justify-content: flex-end;
429
435
  }
430
- .obsidian-dev-utils.popover input[type=text] {
436
+ .obsidian-lib.popover input[type=text] {
431
437
  width: 100%;
432
438
  }
433
439
 
434
- .obsidian-dev-utils.prompt-modal .text-box {
440
+ .obsidian-lib.prompt-modal .text-box {
435
441
  width: 100%;
436
442
  }
437
443
 
438
- .obsidian-dev-utils button:not(.clickable-icon) {
444
+ .obsidian-lib button:not(.clickable-icon) {
439
445
  color: var(--text-color);
440
446
  }
441
447
 
442
- .obsidian-dev-utils.tri-state-checkbox-component input[type=checkbox]:indeterminate {
448
+ .obsidian-lib.tri-state-checkbox-component input[type=checkbox]:indeterminate {
443
449
  appearance: checkbox;
444
450
  }
445
451
 
446
- .obsidian-dev-utils :invalid:not(.untouched) {
452
+ .obsidian-lib :invalid:not(.untouched) {
447
453
  box-shadow: 0 0 0 2px var(--text-error);
448
454
  }
449
- .obsidian-dev-utils input.metadata-input-text:active:invalid:not(.untouched), .obsidian-dev-utils input.metadata-input-text:focus-visible:invalid:not(.untouched), .obsidian-dev-utils input.metadata-input-text:focus:invalid:not(.untouched),
450
- .obsidian-dev-utils input[type=date]:active:invalid:not(.untouched),
451
- .obsidian-dev-utils input[type=date]:focus-visible:invalid:not(.untouched),
452
- .obsidian-dev-utils input[type=date]:focus:invalid:not(.untouched),
453
- .obsidian-dev-utils input[type=datetime-local]:active:invalid:not(.untouched),
454
- .obsidian-dev-utils input[type=datetime-local]:focus-visible:invalid:not(.untouched),
455
- .obsidian-dev-utils input[type=datetime-local]:focus:invalid:not(.untouched),
456
- .obsidian-dev-utils input[type=email]:active:invalid:not(.untouched),
457
- .obsidian-dev-utils input[type=email]:focus-visible:invalid:not(.untouched),
458
- .obsidian-dev-utils input[type=email]:focus:invalid:not(.untouched),
459
- .obsidian-dev-utils input[type=number]:active:invalid:not(.untouched),
460
- .obsidian-dev-utils input[type=number]:focus-visible:invalid:not(.untouched),
461
- .obsidian-dev-utils input[type=number]:focus:invalid:not(.untouched),
462
- .obsidian-dev-utils input[type=password]:active:invalid:not(.untouched),
463
- .obsidian-dev-utils input[type=password]:focus-visible:invalid:not(.untouched),
464
- .obsidian-dev-utils input[type=password]:focus:invalid:not(.untouched),
465
- .obsidian-dev-utils input[type=search]:active:invalid:not(.untouched),
466
- .obsidian-dev-utils input[type=search]:focus-visible:invalid:not(.untouched),
467
- .obsidian-dev-utils input[type=search]:focus:invalid:not(.untouched),
468
- .obsidian-dev-utils input[type=text]:active:invalid:not(.untouched),
469
- .obsidian-dev-utils input[type=text]:focus-visible:invalid:not(.untouched),
470
- .obsidian-dev-utils input[type=text]:focus:invalid:not(.untouched),
471
- .obsidian-dev-utils textarea:active:invalid:not(.untouched),
472
- .obsidian-dev-utils textarea:focus-visible:invalid:not(.untouched),
473
- .obsidian-dev-utils textarea:focus:invalid:not(.untouched) {
455
+ .obsidian-lib input.metadata-input-text:active:invalid:not(.untouched), .obsidian-lib input.metadata-input-text:focus-visible:invalid:not(.untouched), .obsidian-lib input.metadata-input-text:focus:invalid:not(.untouched),
456
+ .obsidian-lib input[type=date]:active:invalid:not(.untouched),
457
+ .obsidian-lib input[type=date]:focus-visible:invalid:not(.untouched),
458
+ .obsidian-lib input[type=date]:focus:invalid:not(.untouched),
459
+ .obsidian-lib input[type=datetime-local]:active:invalid:not(.untouched),
460
+ .obsidian-lib input[type=datetime-local]:focus-visible:invalid:not(.untouched),
461
+ .obsidian-lib input[type=datetime-local]:focus:invalid:not(.untouched),
462
+ .obsidian-lib input[type=email]:active:invalid:not(.untouched),
463
+ .obsidian-lib input[type=email]:focus-visible:invalid:not(.untouched),
464
+ .obsidian-lib input[type=email]:focus:invalid:not(.untouched),
465
+ .obsidian-lib input[type=number]:active:invalid:not(.untouched),
466
+ .obsidian-lib input[type=number]:focus-visible:invalid:not(.untouched),
467
+ .obsidian-lib input[type=number]:focus:invalid:not(.untouched),
468
+ .obsidian-lib input[type=password]:active:invalid:not(.untouched),
469
+ .obsidian-lib input[type=password]:focus-visible:invalid:not(.untouched),
470
+ .obsidian-lib input[type=password]:focus:invalid:not(.untouched),
471
+ .obsidian-lib input[type=search]:active:invalid:not(.untouched),
472
+ .obsidian-lib input[type=search]:focus-visible:invalid:not(.untouched),
473
+ .obsidian-lib input[type=search]:focus:invalid:not(.untouched),
474
+ .obsidian-lib input[type=text]:active:invalid:not(.untouched),
475
+ .obsidian-lib input[type=text]:focus-visible:invalid:not(.untouched),
476
+ .obsidian-lib input[type=text]:focus:invalid:not(.untouched),
477
+ .obsidian-lib textarea:active:invalid:not(.untouched),
478
+ .obsidian-lib textarea:focus-visible:invalid:not(.untouched),
479
+ .obsidian-lib textarea:focus:invalid:not(.untouched) {
474
480
  box-shadow: 0 0 0 2px var(--text-error);
475
481
  }
476
- .obsidian-dev-utils.setting-component-wrapper {
482
+ .obsidian-lib.setting-component-wrapper {
477
483
  position: relative;
478
484
  display: inline-flex;
479
485
  }
480
- .obsidian-dev-utils.overlay-validator {
486
+ .obsidian-lib.overlay-validator {
481
487
  caret-color: transparent;
482
488
  cursor: default;
483
489
  position: absolute;
@@ -491,10 +497,10 @@ progress.obsidian-dev-utils.loop {
491
497
  width: 100%;
492
498
  height: 100%;
493
499
  }
494
- .obsidian-dev-utils.tooltip.tooltip-validator {
500
+ .obsidian-lib.tooltip.tooltip-validator {
495
501
  position: absolute;
496
502
  top: calc(100% + 8px);
497
503
  width: max-content;
498
504
  }
499
505
 
500
- /*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../src/styles/code-highlighter-component.scss%22,%22../src/styles/editor-lock.scss%22,%22../src/styles/input.scss%22,%22../src/styles/input-time.scss%22,%22../src/styles/loop.scss%22,%22../src/styles/minimizable-modal.scss%22,%22../src/styles/modal-commands.scss%22,%22../src/styles/modal-container.scss%22,%22../src/styles/multiple-dropdown-component.scss%22,%22../src/styles/plugin-notice.scss%22,%22../src/styles/plugin-settings-tab.scss%22,%22../src/styles/plugin-suggestion.scss%22,%22../src/styles/popover.scss%22,%22../src/styles/prompt-modal.scss%22,%22../src/styles/tldraw-button-color-workaround.scss%22,%22../src/styles/tri-state-checkbox-component.scss%22,%22../src/styles/validation.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAEI;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;;ACvCN;EACE;EACA;EACA;;AAEA;EACE;EACA;;;AAMJ;EACE;IACE;IACA;;;AAIJ;EACE;;;ACvBA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;AAAA;AAAA;AAAA;AAAA;IACE;IACA,YACE;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA,YACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;AAAA;EACE;;AASE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AC7DV;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;AAGF;AAAA;AAAA;EACE;EACA;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAIK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGP;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAKF;AAAA;AAAA;EACE;;;AAMJ;EACE;;;AC/CK;EACP;;;ACJJ;EACE;IAEE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AASN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOA;EACE;;AAOF;EACE;;AAGF;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACE;EACA;;;ACpGN;EACE;EACA;EACA;EACA;EACA;;AAOF;EACE;EACA;;AAMF;EACE;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAKF;EACE;EACA;;AAIJ;EACE;EACA;;AAGA;EACE;EACA;;;ACpEF;EACE;EACA;;;ACCF;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;;ACZN;EACE;EACA;EACA;EACA;;AAGA;EACE;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAOJ;EACE;;AAEA;EACE;;;ACrCF;EACE;;;ACFJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;ACRJ;EAIE;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;;AC9BF;EACE;;;ACUN;EACE;;;ACZE;EACE;;;ACKJ;EAPA;;AAuBI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAvBJ;;AA6BA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA%22,%22file%22:%22styles.css%22,%22sourcesContent%22:%5B%22.obsidian-dev-utils%20%7B%5Cn%20%20&.code-highlighter-component%20%7B%5Cn%20%20%20%20textarea,%20pre,%20code%20%7B%5Cn%20%20%20%20%20%20font-family:%20var(--font-monospace);%5Cn%20%20%20%20%20%20line-height:%20var(--line-height-normal);%5Cn%20%20%20%20%20%20margin:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea,%20code%20%7B%5Cn%20%20%20%20%20%20font-size:%20var(--code-size);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea%20%7B%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20transparent;%5Cn%20%20%20%20%20%20z-index:%202;%5Cn%20%20%20%20%20%20width:%2020em;%5Cn%20%20%20%20%20%20height:%2010em;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20%20%20border:%20var(--input-border-width)%20solid%20transparent;%5Cn%20%20%20%20%20%20overflow:%20auto;%5Cn%20%20%20%20%20%20inset:%200;%5Cn%20%20%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20%20%20z-index:%201;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre::after%20%7B%5Cn%20%20%20%20%20%20content:%20%5C%22%5C%22;%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20height:%20var(--bottom-gap,%200);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre.is-placeholder%20%7B%5Cn%20%20%20%20%20%20opacity:%200.6;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20padding:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20Lock%20indicators%20shown%20in%20the%20tab%20header%20and%20the%20status%20bar%20while%20a%20note%20is%20locked.%20These%20live%20in%5Cn//%20global%20Obsidian%20DOM%20(tab%20header%20/%20status%20bar),%20so%20they%20are%20styled%20with%20a%20global%20class%20rather%20than%5Cn//%20scoped%20under%20%60.obsidian-dev-utils%60.%5Cn.obsidian-dev-utils-lock-indicator%20%7B%5Cn%20%20display:%20inline-flex;%5Cn%20%20align-items:%20center;%5Cn%20%20color:%20var(--text-muted);%5Cn%5Cn%20%20.svg-icon%20%7B%5Cn%20%20%20%20width:%20var(--icon-s);%5Cn%20%20%20%20height:%20var(--icon-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn//%20Flashed%20on%20every%20lock%20indicator%20(tab%20header,%20view%20action,%20status%20bar)%20when%20the%20user%20attempts%20to%5Cn//%20type%20in%20a%20locked%20note,%20to%20make%20clear%20the%20note%20is%20read-only.%20Re-added%20per%20rejected%20keystroke.%5Cn@keyframes%20obsidian-dev-utils-lock-indicator-flash%20%7B%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20color:%20var(--text-error);%5Cn%20%20%20%20transform:%20scale(1.4);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-dev-utils-lock-indicator-flash%20%7B%5Cn%20%20animation:%20obsidian-dev-utils-lock-indicator-flash%200.35s%20ease-in-out;%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='url'%5D%20%7B%5Cn%20%20%20%20height:%20var(--input-height)%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='tel'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='url'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20-webkit-app-region:%20no-drag;%5Cn%20%20%20%20background:%20var(--background-modifier-form-field);%5Cn%20%20%20%20border:%20var(--input-border-width)%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20font-family:%20inherit;%5Cn%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20font-size:%20var(--font-ui-small);%5Cn%20%20%20%20border-radius:%20var(--input-radius);%5Cn%20%20%20%20outline:%20none;%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20@media%20(hover:%20hover)%20%7B%5Cn%20%20%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20border-color:%20var(--background-modifier-border-hover);%5Cn%20%20%20%20%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus,%5Cn%20%20%20%20&:focus-visible%20%7B%5Cn%20%20%20%20%20%20box-shadow:%200%200%200%202px%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::placeholder%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20@at-root%20%7B%5Cn%20%20%20%20.mod-rtl,%5Cn%20%20%20%20.is-rtl,%5Cn%20%20%20%20.rtl%20%7B%5Cn%20%20%20%20%20%20&%20%7B%5Cn%20%20%20%20%20%20%20%20input%5Btype='month'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='time'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20font-variant-numeric:%20tabular-nums;%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-text%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%20%20padding-inline-end:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20left:%20var(--size-4-1);%5Cn%20%20%20%20%20%20right:%20auto;%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-month-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-day-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-year-field%20%7B%5Cn%20%20%20%20%20%20&:active,%5Cn%20%20%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--text-selection);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%20%20%20%20cursor:%20text;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20.mod-rtl%20&,%5Cn%20%20%20%20%20%20.is-rtl%20&,%5Cn%20%20%20%20%20%20.rtl%20&%20%7B%5Cn%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20body:not(.is-ios):not(.is-android)%20&%20%7B%5Cn%20%20%20%20%20%20%20%20padding-inline-start:%20var(--size-4-6);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='time'%5D%20%7B%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20margin-inline-start:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20//%20Not%20%60&progress%60:%20that%20APPENDS%20the%20element%20name%20to%20the%20parent%20class,%20producing%20one%20long%20class%20that%20matches%5Cn%20%20//%20nothing.%20The%20element%20type%20has%20to%20lead%20the%20compound%20selector%20instead.%5Cn%20%20@at-root%20progress%23%7B&%7D.loop%20%7B%5Cn%20%20%20%20min-width:%20200px;%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22@keyframes%20obsidian-dev-utils-minimized-modal-bar-pulse%20%7B%5Cn%20%200%25,%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%5Cn%20%2050%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%202px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn@keyframes%20obsidian-dev-utils-minimized-modal-bar-attention%20%7B%5Cn%20%200%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%200%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%204px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20//%20The%20minimize%20button%20lives%20inside%20the%20modal%20container,%20left%20of%20Obsidian's%20close%20button.%5Cn%20%20&.minimizable-modal%20%7B%5Cn%20%20%20%20.minimize-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20right:%20calc(var(--size-4-2)%20+%20var(--size-4-9));%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20The%20minimized%20bar%20is%20appended%20to%20document.body.%20It%20floats%20at%20the%20bottom-right%20while%20minimized,%5Cn%20%20//%20and%20gently%20pulses%20an%20accent%20ring%20so%20the%20user%20does%20not%20forget%20about%20the%20minimized%20operation.%5Cn%20%20//%20It%20floats%20a%20status-bar's%20height%20above%20the%20bottom%20edge%20so%20it%20never%20covers%20the%20bottom-right%5Cn%20%20//%20status-bar%20items%20(e.g.%20the%20editor-lock%20unlock%20indicator,%20which%20lives%20in%20the%20same%20corner).%5Cn%20%20&.minimized-modal-bar%20%7B%5Cn%20%20%20%20position:%20fixed;%5Cn%20%20%20%20right:%20var(--size-4-4);%5Cn%20%20%20%20bottom:%20calc(var(--size-4-4)%20+%20var(--size-4-8));%5Cn%20%20%20%20z-index:%20var(--layer-modal);%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20align-items:%20center;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20border:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20border-radius:%20var(--radius-m);%5Cn%20%20%20%20background:%20var(--background-secondary);%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20animation:%20obsidian-dev-utils-minimized-modal-bar-pulse%202s%20ease-in-out%20infinite;%5Cn%5Cn%20%20%20%20//%20Layer%20the%20translucent%20hover%20tint%20over%20the%20opaque%20%60background%60%20(%60--background-secondary%60)%20via%5Cn%20%20%20%20//%20%60background-image%60%20instead%20of%20replacing%20the%20background-color.%20%60--background-modifier-hover%60%20is%5Cn%20%20%20%20//%20translucent,%20so%20setting%20it%20as%20%60background%60%20would%20let%20the%20editor%20content%20behind%20the%20floating%20bar%5Cn%20%20%20%20//%20bleed%20through%20and%20make%20the%20title%20unreadable.%20A%20gradient%20of%20the%20tint%20composited%20over%20the%20opaque%5Cn%20%20%20%20//%20base%20keeps%20the%20bar%20opaque%20while%20preserving%20the%20subtle%20hover%20highlight.%5Cn%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20background-image:%20linear-gradient(var(--background-modifier-hover),%20var(--background-modifier-hover));%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20A%20one-shot,%20more%20pronounced%20flash%20played%20when%20the%20user%20attempts%20a%20blocked%20action%20(a%20keystroke,%5Cn%20%20%20%20//%20right-click,%20or%20opening%20another%20modal)%20while%20this%20modal%20is%20minimized,%20so%20the%20block%20is%20not%5Cn%20%20%20%20//%20silent.%20Its%20higher%20specificity%20overrides%20the%20gentle%20infinite%20idle%20pulse%20while%20it%20plays;%20the%5Cn%20%20%20%20//%20class%20is%20removed%20on%20%60animationend%60,%20restoring%20the%20idle%20pulse.%5Cn%20%20%20%20&.minimized-modal-bar-attention%20%7B%5Cn%20%20%20%20%20%20animation:%20obsidian-dev-utils-minimized-modal-bar-attention%200.35s%20ease-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.minimized-modal-bar-title%20%7B%5Cn%20%20%20%20%20%20font-weight:%20var(--font-medium);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.restore-button,%5Cn%20%20%20%20.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20//%20The%20strip%20of%20commands%20along%20the%20bottom%20of%20a%20modal.%5Cn%20%20//%5Cn%20%20//%20In%20%60Instructions%60%20render%20mode%20it%20also%20carries%20Obsidian's%20own%20%60.prompt-instructions%60%20%E2%80%94%20whose%20rule%20is%5Cn%20%20//%20unscoped,%20so%20it%20applies%20to%20a%20plain%20%60Modal%60%20too%20%E2%80%94%20and%20this%20one%20only%20re-tunes%20that%20rule's%20%60gap%60%20and%5Cn%20%20//%20%60padding%60%20and%20adds%20the%20separator;%20in%20%60Buttons%60%20mode%20it%20is%20the%20whole%20strip.%5Cn%20%20&.modal-commands%20%7B%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-wrap:%20wrap;%5Cn%20%20%20%20gap:%20var(--size-2-2);%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20border-top:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%7D%5Cn%5Cn%20%20//%20A%20control%20the%20%60Instructions%60%20renderer%20injects%20into%20an%20instruction's%20purpose%20text%20%E2%80%94%20a%20checkbox,%20a%5Cn%20%20//%20dropdown.%20Obsidian%20styles%20the%20instruction%20bar%20itself,%20but%20its%20own%20bar%20never%20contains%20a%20control,%20so%5Cn%20%20//%20nothing%20upstream%20separates%20one%20from%20the%20label%20it%20belongs%20to.%20Sits%20on%20the%20control%20rather%20than%20on%20the%5Cn%20%20//%20strip,%20so%20it%20reaches%20a%20%60SuggestModal%60's%20native%20bar%20as%20well%20as%20a%20self-created%20one.%5Cn%20%20&.modal-command-control%20%7B%5Cn%20%20%20%20margin-inline-start:%20var(--size-2-2);%5Cn%20%20%20%20vertical-align:%20middle;%5Cn%20%20%7D%5Cn%5Cn%20%20//%20One%20command%20button.%20Replaces%20the%20instruction%20bar%20rather%20than%20supplementing%20it:%20the%20bar%20can%20only%20ever%5Cn%20%20//%20say%20which%20key%20to%20press,%20and%20on%20a%20phone%20there%20is%20no%20modifier%20key%20to%20press,%20so%20every%20control%20it%20names%5Cn%20%20//%20is%20unreachable%20there.%5Cn%20%20&.modal-command%20%7B%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%20%20align-items:%20baseline;%5Cn%20%20%20%20gap:%20var(--size-2-2);%5Cn%5Cn%20%20%20%20//%20Comfortably%20tappable%20on%20a%20phone,%20where%20this%20strip%20is%20the%20only%20way%20in.%5Cn%20%20%20%20min-height:%20var(--size-4-8);%5Cn%20%20%20%20padding:%20var(--size-2-1)%20var(--size-4-2);%5Cn%20%20%20%20border:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20background-color:%20var(--background-secondary);%5Cn%20%20%20%20color:%20var(--text-muted);%5Cn%20%20%20%20font-size:%20var(--font-ui-smaller);%5Cn%20%20%20%20white-space:%20nowrap;%5Cn%20%20%20%20cursor:%20pointer;%5Cn%5Cn%20%20%20%20&:hover:not(:disabled)%20%7B%5Cn%20%20%20%20%20%20background-color:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20A%20toggle%20that%20is%20ON.%20An%20action%20never%20carries%20it%20%E2%80%94%20it%20does%20something%20and%20is%20done,%20so%20there%20is%20no%5Cn%20%20%20%20//%20state%20for%20it%20to%20show.%5Cn%20%20%20%20&.is-active%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20background-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20Disabled%20rather%20than%20removed:%20a%20strip%20that%20lost%20buttons%20as%20modes%20change%20would%20reflow%20under%20the%5Cn%20%20%20%20//%20pointer,%20which%20on%20a%20phone%20means%20a%20mis-tap.%5Cn%20%20%20%20&:disabled%20%7B%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%20%20cursor:%20default;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.modal-command-hotkey%20%7B%5Cn%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20font-size:%20var(--font-smallest);%5Cn%5Cn%20%20%20%20//%20Faint%20against%20the%20surface%20is%20right;%20faint%20against%20the%20accent%20fill%20is%20invisible.%5Cn%20%20%20%20.modal-command.is-active%20&%20%7B%5Cn%20%20%20%20%20%20opacity:%200.7;%5Cn%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.modal-container%20%7B%5Cn%20%20%20%20.ok-button%20%7B%5Cn%20%20%20%20%20%20margin-right:%2010px;%5Cn%20%20%20%20%20%20margin-top:%2020px;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20//%20Compound,%20not%20nested:%20%60addPluginCssClasses%60%20puts%20%60obsidian-dev-utils%60%20and%20%60multiple-dropdown-component%60%20on%20the%5Cn%20%20//%20SAME%20element%20(the%20setting's%20control%20container),%20so%20a%20descendant%20selector%20matched%20nothing%20and%20every%20multiple%5Cn%20%20//%20dropdown%20rendered%20one%20row%20tall%20%E2%80%94%20Obsidian's%20%60.dropdown%60%20height,%20with%20no%20popup%20behind%20it%20to%20pick%20from.%5Cn%20%20&.multiple-dropdown-component%20%7B%5Cn%20%20%20%20select,%5Cn%20%20%20%20select:focus,%5Cn%20%20%20%20.dropdown%20%7B%5Cn%20%20%20%20%20%20height:%20auto;%5Cn%20%20%20%20%20%20padding-top:%203px;%5Cn%5Cn%20%20%20%20%20%20option:checked%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-notice-name%20%7B%5Cn%20%20%20%20color:%20var(--text-accent);%5Cn%20%20%20%20display:%20inline-block;%5Cn%20%20%20%20font-weight:%20var(--font-bold);%5Cn%20%20%20%20margin-bottom:%20var(--size-4-2);%5Cn%5Cn%20%20%20%20//%20The%20name%20is%20inline%20code;%20it%20keeps%20the%20code%20background%20and%20font%20but%20takes%20the%20prefix's%20accent%20color.%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20color:%20inherit;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.plugin-notice-content%20%7B%5Cn%20%20%20%20padding-right:%20var(--size-4-5);%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20.obsidian-dev-utils.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20margin-top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20width:%20fit-content;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20The%20close%20button%20reuses%20Obsidian's%20%60modal-header-button%60%20+%20%60clickable-icon%60%20classes%20so%20it%20matches%5Cn%20%20%20%20//%20The%20native%20modal%20close%20button%20(box%20+%20hover);%20only%20its%20corner%20position%20is%20set%20here.%5Cn%20%20%20%20.obsidian-dev-utils.plugin-notice-close-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20right:%20var(--size-4-3);%5Cn%20%20%20%20%20%20top:%20var(--size-4-3);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20Move%20the%20notice's%20own%20padding%20onto%20the%20content%20wrapper%20so%20the%20wrapper%20covers%20the%20whole%20clickable%5Cn%20%20//%20Area%20%E2%80%94%20otherwise%20a%20click%20landing%20on%20the%20notice's%20bare%20padding%20(outside%20the%20wrapper)%20would%20bypass%20the%5Cn%20%20//%20Stop-propagation%20guard%20and%20dismiss%20the%20hard-to-close%20notice.%5Cn%20%20&.plugin-notice-requires-explicit-close.notice%20%7B%5Cn%20%20%20%20padding:%200;%5Cn%5Cn%20%20%20%20.obsidian-dev-utils.plugin-notice-content%20%7B%5Cn%20%20%20%20%20%20padding:%20var(--size-4-3)%20var(--size-4-4);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-settings-tab%20%7B%5Cn%20%20%20%20a:focus%20%7B%5Cn%20%20%20%20%20%20outline:%202px%20solid%20var(--link-color);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-suggestion-banner%20%7B%5Cn%20%20%20%20background-color:%20var(--background-secondary);%5Cn%20%20%20%20border-left:%20var(--size-2-1)%20solid%20var(--text-accent);%5Cn%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-direction:%20column;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20margin-bottom:%20var(--size-4-4);%5Cn%20%20%20%20padding:%20var(--size-4-3)%20var(--size-4-4);%5Cn%5Cn%20%20%20%20button%20%7B%5Cn%20%20%20%20%20%20width:%20fit-content;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20A%20popover%20is%20anchored%20at%20a%20point%20and%20appended%20to%20the%20document%20body,%20outside%20any%20plugin-scoped%5Cn//%20container,%20so%20it%20is%20positioned%20absolutely%20at%20the%20top%20level.%20It%20borrows%20Obsidian's%20%60.menu%60%20look,%5Cn//%20which%20already%20carries%20the%20popup%20background,%20border%20and%20shadow%20%E2%80%94%20only%20layout%20is%20set%20here.%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20&.popover%20%7B%5Cn%20%20%20%20//%20Deliberately%20not%20%60calc(100vw%20-%2016px)%60:%20the%20SCSS%20compiler%20strips%20the%20%60calc(%60%20wrapper%20inside%5Cn%20%20%20%20//%20%60min()%60,%20which%20yields%20invalid%20CSS.%20A%20viewport%20percentage%20keeps%20a%20narrow%20window's%20popover%20on%5Cn%20%20%20%20//%20screen.%5Cn%20%20%20%20max-width:%20min(420px,%2090vw);%5Cn%20%20%20%20min-width:%20320px;%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20z-index:%20var(--layer-menu);%5Cn%5Cn%20%20%20%20//%20Setting%20rows%20are%20built%20for%20a%20full-width%20settings%20tab;%20compact%20them%20for%20a%20popover.%5Cn%20%20%20%20.setting-item%20%7B%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20border-top:%20none;%5Cn%20%20%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20%20%20padding:%20var(--size-2-1)%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.setting-item-info%20%7B%5Cn%20%20%20%20%20%20margin-right:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.setting-item-control%20%7B%5Cn%20%20%20%20%20%20flex-grow:%201;%5Cn%20%20%20%20%20%20justify-content:%20flex-end;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20input%5Btype='text'%5D%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.prompt-modal%20%7B%5Cn%20%20%20%20.text-box%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20The%20tldraw%20Obsidian%20plugin%20(tldraw/obsidian-plugin)%20ships%20an%20unscoped%20global%20rule%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20currentColor%20%7D%60%20that%20overrides%20Obsidian's%20own%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20var(--text-color)%20%7D%60%20app-wide.%20Obsidian%20sets%5Cn//%20%60--text-color%60%20contextually%20per%20button%20variant%20(%60--text-normal%60%20by%20default,%5Cn//%20%60--text-on-accent%60%20for%20%60.mod-cta%60,%20%60--text-error%60%20for%20%60.mod-warning%60),%20so%20tldraw's%5Cn//%20%60currentColor%60%20discards%20that%20and%20breaks%20button%20contrast%20outside%20tldraw%20%E2%80%94%20e.g.%5Cn//%20White-on-white%20action%20buttons%20inside%20a%20Notice.%20Re-assert%20Obsidian's%20own%20value%20inside%20the%5Cn//%20Library's%20own%20UI%20(specificity%200,2,1),%20which%20wins%20over%20tldraw's%20(0,1,1)%20while%20staying%20correct%5Cn//%20For%20every%20button%20variant%20(it%20reuses%20the%20same%20contextual%20%60--text-color%60).%5Cn//%20It%20MUST%20stay%20scoped%20to%20%60.obsidian-dev-utils%60:%20an%20unscoped%20re-assert%20(it%20was%20%60body%20button%E2%80%A6%60,%5Cn//%200,1,2)%20lands%20on%20every%20button%20in%20the%20app%20and%20beats%20any%20other%20plugin's%20own%20button%20color%5Cn//%20Written%20at%200,1,1,%20which%20Obsidian's%20own%20rule%20used%20to%20lose%20to%20(obsidian-custom-attachment-location%2395).%5Cn//%20Defensive%20workaround%20%E2%80%94%20remove%20once%20the%20upstream%20fix%20ships%20(tldraw/obsidian-plugin%23210).%5Cn.obsidian-dev-utils%20button:not(.clickable-icon)%20%7B%5Cn%20%20color:%20var(--text-color);%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.tri-state-checkbox-component%20%7B%5Cn%20%20%20%20input%5Btype='checkbox'%5D:indeterminate%20%7B%5Cn%20%20%20%20%20%20appearance:%20checkbox;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22@mixin%20invalid%20%7B%5Cn%20%20box-shadow:%200%200%200%202px%20var(--text-error);%5Cn%7D%5Cn%5Cn//%20An%20input%20the%20user%20has%20not%20interacted%20with%20yet%20carries%20%60.untouched%60%20(set%20by%20%60PromptModal%60),%20so%20a%20modal%20that%5Cn//%20opens%20invalid%20by%20design%20does%20not%20greet%20the%20user%20in%20red.%20Both%20blocks%20below%20must%20be%20gated:%20the%20input%20is%5Cn//%20focused%20on%20open,%20so%20the%20focus%20block%20alone%20would%20keep%20painting%20it.%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20:invalid:not(.untouched)%20%7B%5Cn%20%20%20%20@include%20invalid;%5Cn%20%20%7D%5Cn%5Cn%20%20input.metadata-input-text,%5Cn%20%20input%5Btype='date'%5D,%5Cn%20%20input%5Btype='datetime-local'%5D,%5Cn%20%20input%5Btype='email'%5D,%5Cn%20%20input%5Btype='number'%5D,%5Cn%20%20input%5Btype='password'%5D,%5Cn%20%20input%5Btype='search'%5D,%5Cn%20%20input%5Btype='text'%5D,%5Cn%20%20textarea%20%7B%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus-visible,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20&:invalid:not(.untouched)%20%7B%5Cn%20%20%20%20%20%20%20%20@include%20invalid;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.setting-component-wrapper%20%7B%5Cn%20%20%20%20position:%20relative;%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%7D%5Cn%5Cn%20%20&.overlay-validator%20%7B%5Cn%20%20%20%20caret-color:%20transparent;%5Cn%20%20%20%20cursor:%20default;%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20background-color:%20transparent;%5Cn%20%20%20%20border:%20none;%5Cn%20%20%20%20outline:%20none;%5Cn%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20z-index:%209999;%5Cn%20%20%20%20left:%200;%5Cn%20%20%20%20top:%200;%5Cn%20%20%20%20width:%20100%25;%5Cn%20%20%20%20height:%20100%25;%5Cn%20%20%7D%5Cn%5Cn%20%20&.tooltip.tooltip-validator%20%7B%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20top:%20calc(100%25%20+%208px);%5Cn%20%20%20%20width:%20max-content;%5Cn%20%20%7D%5Cn%7D%5Cn%22%5D%7D */
506
+ /*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../src/styles/code-highlighter-component.scss%22,%22../src/styles/editor-lock.scss%22,%22../src/styles/input.scss%22,%22../src/styles/input-time.scss%22,%22../src/styles/loop.scss%22,%22../src/styles/minimizable-modal.scss%22,%22../src/styles/modal-commands.scss%22,%22../src/styles/modal-container.scss%22,%22../src/styles/multiple-dropdown-component.scss%22,%22../src/styles/plugin-notice.scss%22,%22../src/styles/plugin-settings-tab.scss%22,%22../src/styles/plugin-suggestion.scss%22,%22../src/styles/popover.scss%22,%22../src/styles/prompt-modal.scss%22,%22../src/styles/tldraw-button-color-workaround.scss%22,%22../src/styles/tri-state-checkbox-component.scss%22,%22../src/styles/validation.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAEI;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;;ACvCN;EACE;EACA;EACA;;AAEA;EACE;EACA;;;AAMJ;EACE;IACE;IACA;;;AAIJ;EACE;;;ACvBA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;AAAA;AAAA;AAAA;AAAA;IACE;IACA,YACE;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA,YACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;AAAA;EACE;;AASE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AC7DV;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;AAGF;AAAA;AAAA;EACE;EACA;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAIK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGP;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAKF;AAAA;AAAA;EACE;;;AAMJ;EACE;;;AC/CK;EACP;;;ACJJ;EACE;IAEE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AASN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOA;EACE;;AAOF;EACE;;AAGF;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACE;EACA;;;ACpGN;EACE;EACA;EACA;EACA;EACA;;AAOF;EACE;EACA;;AAMF;EACE;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAKF;EACE;EACA;;AAIJ;EACE;EACA;;AAGA;EACE;EACA;;;ACpEF;EACE;EACA;;;ACCF;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;;ACZN;EACE;EACA;EACA;EACA;;AAGA;EACE;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAOJ;EACE;;AAEA;EACE;;;ACrCF;EACE;;;ACFJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;EACA;;;ACjBF;EAIE;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;;AC9BF;EACE;;;ACUN;EACE;;;ACZE;EACE;;;ACKJ;EAPA;;AAuBI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAvBJ;;AA6BA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA%22,%22file%22:%22styles.css%22,%22sourcesContent%22:%5B%22.obsidian-lib%20%7B%5Cn%20%20&.code-highlighter-component%20%7B%5Cn%20%20%20%20textarea,%20pre,%20code%20%7B%5Cn%20%20%20%20%20%20font-family:%20var(--font-monospace);%5Cn%20%20%20%20%20%20line-height:%20var(--line-height-normal);%5Cn%20%20%20%20%20%20margin:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea,%20code%20%7B%5Cn%20%20%20%20%20%20font-size:%20var(--code-size);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea%20%7B%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20transparent;%5Cn%20%20%20%20%20%20z-index:%202;%5Cn%20%20%20%20%20%20width:%2020em;%5Cn%20%20%20%20%20%20height:%2010em;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20%20%20border:%20var(--input-border-width)%20solid%20transparent;%5Cn%20%20%20%20%20%20overflow:%20auto;%5Cn%20%20%20%20%20%20inset:%200;%5Cn%20%20%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20%20%20z-index:%201;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre::after%20%7B%5Cn%20%20%20%20%20%20content:%20%5C%22%5C%22;%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20height:%20var(--bottom-gap,%200);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre.is-placeholder%20%7B%5Cn%20%20%20%20%20%20opacity:%200.6;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20padding:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20Lock%20indicators%20shown%20in%20the%20tab%20header%20and%20the%20status%20bar%20while%20a%20note%20is%20locked.%20These%20live%20in%5Cn//%20global%20Obsidian%20DOM%20(tab%20header%20/%20status%20bar),%20so%20they%20are%20styled%20with%20a%20global%20class%20rather%20than%5Cn//%20scoped%20under%20%60.obsidian-lib%60.%5Cn.obsidian-lib-lock-indicator%20%7B%5Cn%20%20display:%20inline-flex;%5Cn%20%20align-items:%20center;%5Cn%20%20color:%20var(--text-muted);%5Cn%5Cn%20%20.svg-icon%20%7B%5Cn%20%20%20%20width:%20var(--icon-s);%5Cn%20%20%20%20height:%20var(--icon-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn//%20Flashed%20on%20every%20lock%20indicator%20(tab%20header,%20view%20action,%20status%20bar)%20when%20the%20user%20attempts%20to%5Cn//%20type%20in%20a%20locked%20note,%20to%20make%20clear%20the%20note%20is%20read-only.%20Re-added%20per%20rejected%20keystroke.%5Cn@keyframes%20obsidian-lib-lock-indicator-flash%20%7B%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20color:%20var(--text-error);%5Cn%20%20%20%20transform:%20scale(1.4);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-lib-lock-indicator-flash%20%7B%5Cn%20%20animation:%20obsidian-lib-lock-indicator-flash%200.35s%20ease-in-out;%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20input%5Btype='url'%5D%20%7B%5Cn%20%20%20%20height:%20var(--input-height)%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='tel'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='url'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20-webkit-app-region:%20no-drag;%5Cn%20%20%20%20background:%20var(--background-modifier-form-field);%5Cn%20%20%20%20border:%20var(--input-border-width)%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20font-family:%20inherit;%5Cn%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20font-size:%20var(--font-ui-small);%5Cn%20%20%20%20border-radius:%20var(--input-radius);%5Cn%20%20%20%20outline:%20none;%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20@media%20(hover:%20hover)%20%7B%5Cn%20%20%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20border-color:%20var(--background-modifier-border-hover);%5Cn%20%20%20%20%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus,%5Cn%20%20%20%20&:focus-visible%20%7B%5Cn%20%20%20%20%20%20box-shadow:%200%200%200%202px%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::placeholder%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20@at-root%20%7B%5Cn%20%20%20%20.mod-rtl,%5Cn%20%20%20%20.is-rtl,%5Cn%20%20%20%20.rtl%20%7B%5Cn%20%20%20%20%20%20&%20%7B%5Cn%20%20%20%20%20%20%20%20input%5Btype='month'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='time'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20font-variant-numeric:%20tabular-nums;%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-text%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%20%20padding-inline-end:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20left:%20var(--size-4-1);%5Cn%20%20%20%20%20%20right:%20auto;%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-month-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-day-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-year-field%20%7B%5Cn%20%20%20%20%20%20&:active,%5Cn%20%20%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--text-selection);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%20%20%20%20cursor:%20text;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20.mod-rtl%20&,%5Cn%20%20%20%20%20%20.is-rtl%20&,%5Cn%20%20%20%20%20%20.rtl%20&%20%7B%5Cn%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20body:not(.is-ios):not(.is-android)%20&%20%7B%5Cn%20%20%20%20%20%20%20%20padding-inline-start:%20var(--size-4-6);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='time'%5D%20%7B%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20margin-inline-start:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20//%20Not%20%60&progress%60:%20that%20APPENDS%20the%20element%20name%20to%20the%20parent%20class,%20producing%20one%20long%20class%20that%20matches%5Cn%20%20//%20nothing.%20The%20element%20type%20has%20to%20lead%20the%20compound%20selector%20instead.%5Cn%20%20@at-root%20progress%23%7B&%7D.loop%20%7B%5Cn%20%20%20%20min-width:%20200px;%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22@keyframes%20obsidian-lib-minimized-modal-bar-pulse%20%7B%5Cn%20%200%25,%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%5Cn%20%2050%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%202px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn@keyframes%20obsidian-lib-minimized-modal-bar-attention%20%7B%5Cn%20%200%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%200%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%204px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-lib%20%7B%5Cn%20%20//%20The%20minimize%20button%20lives%20inside%20the%20modal%20container,%20left%20of%20Obsidian's%20close%20button.%5Cn%20%20&.minimizable-modal%20%7B%5Cn%20%20%20%20.minimize-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20right:%20calc(var(--size-4-2)%20+%20var(--size-4-9));%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20The%20minimized%20bar%20is%20appended%20to%20document.body.%20It%20floats%20at%20the%20bottom-right%20while%20minimized,%5Cn%20%20//%20and%20gently%20pulses%20an%20accent%20ring%20so%20the%20user%20does%20not%20forget%20about%20the%20minimized%20operation.%5Cn%20%20//%20It%20floats%20a%20status-bar's%20height%20above%20the%20bottom%20edge%20so%20it%20never%20covers%20the%20bottom-right%5Cn%20%20//%20status-bar%20items%20(e.g.%20the%20editor-lock%20unlock%20indicator,%20which%20lives%20in%20the%20same%20corner).%5Cn%20%20&.minimized-modal-bar%20%7B%5Cn%20%20%20%20position:%20fixed;%5Cn%20%20%20%20right:%20var(--size-4-4);%5Cn%20%20%20%20bottom:%20calc(var(--size-4-4)%20+%20var(--size-4-8));%5Cn%20%20%20%20z-index:%20var(--layer-modal);%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20align-items:%20center;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20border:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20border-radius:%20var(--radius-m);%5Cn%20%20%20%20background:%20var(--background-secondary);%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20animation:%20obsidian-lib-minimized-modal-bar-pulse%202s%20ease-in-out%20infinite;%5Cn%5Cn%20%20%20%20//%20Layer%20the%20translucent%20hover%20tint%20over%20the%20opaque%20%60background%60%20(%60--background-secondary%60)%20via%5Cn%20%20%20%20//%20%60background-image%60%20instead%20of%20replacing%20the%20background-color.%20%60--background-modifier-hover%60%20is%5Cn%20%20%20%20//%20translucent,%20so%20setting%20it%20as%20%60background%60%20would%20let%20the%20editor%20content%20behind%20the%20floating%20bar%5Cn%20%20%20%20//%20bleed%20through%20and%20make%20the%20title%20unreadable.%20A%20gradient%20of%20the%20tint%20composited%20over%20the%20opaque%5Cn%20%20%20%20//%20base%20keeps%20the%20bar%20opaque%20while%20preserving%20the%20subtle%20hover%20highlight.%5Cn%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20background-image:%20linear-gradient(var(--background-modifier-hover),%20var(--background-modifier-hover));%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20A%20one-shot,%20more%20pronounced%20flash%20played%20when%20the%20user%20attempts%20a%20blocked%20action%20(a%20keystroke,%5Cn%20%20%20%20//%20right-click,%20or%20opening%20another%20modal)%20while%20this%20modal%20is%20minimized,%20so%20the%20block%20is%20not%5Cn%20%20%20%20//%20silent.%20Its%20higher%20specificity%20overrides%20the%20gentle%20infinite%20idle%20pulse%20while%20it%20plays;%20the%5Cn%20%20%20%20//%20class%20is%20removed%20on%20%60animationend%60,%20restoring%20the%20idle%20pulse.%5Cn%20%20%20%20&.minimized-modal-bar-attention%20%7B%5Cn%20%20%20%20%20%20animation:%20obsidian-lib-minimized-modal-bar-attention%200.35s%20ease-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.minimized-modal-bar-title%20%7B%5Cn%20%20%20%20%20%20font-weight:%20var(--font-medium);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.restore-button,%5Cn%20%20%20%20.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20//%20The%20strip%20of%20commands%20along%20the%20bottom%20of%20a%20modal.%5Cn%20%20//%5Cn%20%20//%20In%20%60Instructions%60%20render%20mode%20it%20also%20carries%20Obsidian's%20own%20%60.prompt-instructions%60%20%E2%80%94%20whose%20rule%20is%5Cn%20%20//%20unscoped,%20so%20it%20applies%20to%20a%20plain%20%60Modal%60%20too%20%E2%80%94%20and%20this%20one%20only%20re-tunes%20that%20rule's%20%60gap%60%20and%5Cn%20%20//%20%60padding%60%20and%20adds%20the%20separator;%20in%20%60Buttons%60%20mode%20it%20is%20the%20whole%20strip.%5Cn%20%20&.modal-commands%20%7B%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-wrap:%20wrap;%5Cn%20%20%20%20gap:%20var(--size-2-2);%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20border-top:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%7D%5Cn%5Cn%20%20//%20A%20control%20the%20%60Instructions%60%20renderer%20injects%20into%20an%20instruction's%20purpose%20text%20%E2%80%94%20a%20checkbox,%20a%5Cn%20%20//%20dropdown.%20Obsidian%20styles%20the%20instruction%20bar%20itself,%20but%20its%20own%20bar%20never%20contains%20a%20control,%20so%5Cn%20%20//%20nothing%20upstream%20separates%20one%20from%20the%20label%20it%20belongs%20to.%20Sits%20on%20the%20control%20rather%20than%20on%20the%5Cn%20%20//%20strip,%20so%20it%20reaches%20a%20%60SuggestModal%60's%20native%20bar%20as%20well%20as%20a%20self-created%20one.%5Cn%20%20&.modal-command-control%20%7B%5Cn%20%20%20%20margin-inline-start:%20var(--size-2-2);%5Cn%20%20%20%20vertical-align:%20middle;%5Cn%20%20%7D%5Cn%5Cn%20%20//%20One%20command%20button.%20Replaces%20the%20instruction%20bar%20rather%20than%20supplementing%20it:%20the%20bar%20can%20only%20ever%5Cn%20%20//%20say%20which%20key%20to%20press,%20and%20on%20a%20phone%20there%20is%20no%20modifier%20key%20to%20press,%20so%20every%20control%20it%20names%5Cn%20%20//%20is%20unreachable%20there.%5Cn%20%20&.modal-command%20%7B%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%20%20align-items:%20baseline;%5Cn%20%20%20%20gap:%20var(--size-2-2);%5Cn%5Cn%20%20%20%20//%20Comfortably%20tappable%20on%20a%20phone,%20where%20this%20strip%20is%20the%20only%20way%20in.%5Cn%20%20%20%20min-height:%20var(--size-4-8);%5Cn%20%20%20%20padding:%20var(--size-2-1)%20var(--size-4-2);%5Cn%20%20%20%20border:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20background-color:%20var(--background-secondary);%5Cn%20%20%20%20color:%20var(--text-muted);%5Cn%20%20%20%20font-size:%20var(--font-ui-smaller);%5Cn%20%20%20%20white-space:%20nowrap;%5Cn%20%20%20%20cursor:%20pointer;%5Cn%5Cn%20%20%20%20&:hover:not(:disabled)%20%7B%5Cn%20%20%20%20%20%20background-color:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20A%20toggle%20that%20is%20ON.%20An%20action%20never%20carries%20it%20%E2%80%94%20it%20does%20something%20and%20is%20done,%20so%20there%20is%20no%5Cn%20%20%20%20//%20state%20for%20it%20to%20show.%5Cn%20%20%20%20&.is-active%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20background-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20Disabled%20rather%20than%20removed:%20a%20strip%20that%20lost%20buttons%20as%20modes%20change%20would%20reflow%20under%20the%5Cn%20%20%20%20//%20pointer,%20which%20on%20a%20phone%20means%20a%20mis-tap.%5Cn%20%20%20%20&:disabled%20%7B%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%20%20cursor:%20default;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.modal-command-hotkey%20%7B%5Cn%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20font-size:%20var(--font-smallest);%5Cn%5Cn%20%20%20%20//%20Faint%20against%20the%20surface%20is%20right;%20faint%20against%20the%20accent%20fill%20is%20invisible.%5Cn%20%20%20%20.modal-command.is-active%20&%20%7B%5Cn%20%20%20%20%20%20opacity:%200.7;%5Cn%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.modal-container%20%7B%5Cn%20%20%20%20.ok-button%20%7B%5Cn%20%20%20%20%20%20margin-right:%2010px;%5Cn%20%20%20%20%20%20margin-top:%2020px;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20//%20Compound,%20not%20nested:%20%60addPluginCssClasses%60%20puts%20%60obsidian-lib%60%20and%20%60multiple-dropdown-component%60%20on%20the%5Cn%20%20//%20SAME%20element%20(the%20setting's%20control%20container),%20so%20a%20descendant%20selector%20matched%20nothing%20and%20every%20multiple%5Cn%20%20//%20dropdown%20rendered%20one%20row%20tall%20%E2%80%94%20Obsidian's%20%60.dropdown%60%20height,%20with%20no%20popup%20behind%20it%20to%20pick%20from.%5Cn%20%20&.multiple-dropdown-component%20%7B%5Cn%20%20%20%20select,%5Cn%20%20%20%20select:focus,%5Cn%20%20%20%20.dropdown%20%7B%5Cn%20%20%20%20%20%20height:%20auto;%5Cn%20%20%20%20%20%20padding-top:%203px;%5Cn%5Cn%20%20%20%20%20%20option:checked%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.plugin-notice-name%20%7B%5Cn%20%20%20%20color:%20var(--text-accent);%5Cn%20%20%20%20display:%20inline-block;%5Cn%20%20%20%20font-weight:%20var(--font-bold);%5Cn%20%20%20%20margin-bottom:%20var(--size-4-2);%5Cn%5Cn%20%20%20%20//%20The%20name%20is%20inline%20code;%20it%20keeps%20the%20code%20background%20and%20font%20but%20takes%20the%20prefix's%20accent%20color.%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20color:%20inherit;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.plugin-notice-content%20%7B%5Cn%20%20%20%20padding-right:%20var(--size-4-5);%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20.obsidian-lib.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20margin-top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20width:%20fit-content;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20The%20close%20button%20reuses%20Obsidian's%20%60modal-header-button%60%20+%20%60clickable-icon%60%20classes%20so%20it%20matches%5Cn%20%20%20%20//%20The%20native%20modal%20close%20button%20(box%20+%20hover);%20only%20its%20corner%20position%20is%20set%20here.%5Cn%20%20%20%20.obsidian-lib.plugin-notice-close-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20right:%20var(--size-4-3);%5Cn%20%20%20%20%20%20top:%20var(--size-4-3);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20Move%20the%20notice's%20own%20padding%20onto%20the%20content%20wrapper%20so%20the%20wrapper%20covers%20the%20whole%20clickable%5Cn%20%20//%20Area%20%E2%80%94%20otherwise%20a%20click%20landing%20on%20the%20notice's%20bare%20padding%20(outside%20the%20wrapper)%20would%20bypass%20the%5Cn%20%20//%20Stop-propagation%20guard%20and%20dismiss%20the%20hard-to-close%20notice.%5Cn%20%20&.plugin-notice-requires-explicit-close.notice%20%7B%5Cn%20%20%20%20padding:%200;%5Cn%5Cn%20%20%20%20.obsidian-lib.plugin-notice-content%20%7B%5Cn%20%20%20%20%20%20padding:%20var(--size-4-3)%20var(--size-4-4);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.plugin-settings-tab%20%7B%5Cn%20%20%20%20a:focus%20%7B%5Cn%20%20%20%20%20%20outline:%202px%20solid%20var(--link-color);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.plugin-suggestion-banner%20%7B%5Cn%20%20%20%20background-color:%20var(--background-secondary);%5Cn%20%20%20%20border-left:%20var(--size-2-1)%20solid%20var(--text-accent);%5Cn%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-direction:%20column;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20margin-bottom:%20var(--size-4-4);%5Cn%20%20%20%20padding:%20var(--size-4-3)%20var(--size-4-4);%5Cn%5Cn%20%20%20%20button%20%7B%5Cn%20%20%20%20%20%20width:%20fit-content;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20A%20notice%20lays%20its%20buttons%20out%20inline%20with%20no%20spacing,%20so%20the%20action%20button%20would%20touch%20the%20decline%20button.%5Cn%20%20&.plugin-suggestion-notice-buttons%20%7B%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-wrap:%20wrap;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20margin-top:%20var(--size-4-2);%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20A%20popover%20is%20anchored%20at%20a%20point%20and%20appended%20to%20the%20document%20body,%20outside%20any%20plugin-scoped%5Cn//%20container,%20so%20it%20is%20positioned%20absolutely%20at%20the%20top%20level.%20It%20borrows%20Obsidian's%20%60.menu%60%20look,%5Cn//%20which%20already%20carries%20the%20popup%20background,%20border%20and%20shadow%20%E2%80%94%20only%20layout%20is%20set%20here.%5Cn.obsidian-lib%20%7B%5Cn%20%20&.popover%20%7B%5Cn%20%20%20%20//%20Deliberately%20not%20%60calc(100vw%20-%2016px)%60:%20the%20SCSS%20compiler%20strips%20the%20%60calc(%60%20wrapper%20inside%5Cn%20%20%20%20//%20%60min()%60,%20which%20yields%20invalid%20CSS.%20A%20viewport%20percentage%20keeps%20a%20narrow%20window's%20popover%20on%5Cn%20%20%20%20//%20screen.%5Cn%20%20%20%20max-width:%20min(420px,%2090vw);%5Cn%20%20%20%20min-width:%20320px;%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20z-index:%20var(--layer-menu);%5Cn%5Cn%20%20%20%20//%20Setting%20rows%20are%20built%20for%20a%20full-width%20settings%20tab;%20compact%20them%20for%20a%20popover.%5Cn%20%20%20%20.setting-item%20%7B%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20border-top:%20none;%5Cn%20%20%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20%20%20padding:%20var(--size-2-1)%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.setting-item-info%20%7B%5Cn%20%20%20%20%20%20margin-right:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.setting-item-control%20%7B%5Cn%20%20%20%20%20%20flex-grow:%201;%5Cn%20%20%20%20%20%20justify-content:%20flex-end;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20input%5Btype='text'%5D%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.prompt-modal%20%7B%5Cn%20%20%20%20.text-box%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20The%20tldraw%20Obsidian%20plugin%20(tldraw/obsidian-plugin)%20ships%20an%20unscoped%20global%20rule%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20currentColor%20%7D%60%20that%20overrides%20Obsidian's%20own%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20var(--text-color)%20%7D%60%20app-wide.%20Obsidian%20sets%5Cn//%20%60--text-color%60%20contextually%20per%20button%20variant%20(%60--text-normal%60%20by%20default,%5Cn//%20%60--text-on-accent%60%20for%20%60.mod-cta%60,%20%60--text-error%60%20for%20%60.mod-warning%60),%20so%20tldraw's%5Cn//%20%60currentColor%60%20discards%20that%20and%20breaks%20button%20contrast%20outside%20tldraw%20%E2%80%94%20e.g.%5Cn//%20White-on-white%20action%20buttons%20inside%20a%20Notice.%20Re-assert%20Obsidian's%20own%20value%20inside%20the%5Cn//%20Library's%20own%20UI%20(specificity%200,2,1),%20which%20wins%20over%20tldraw's%20(0,1,1)%20while%20staying%20correct%5Cn//%20For%20every%20button%20variant%20(it%20reuses%20the%20same%20contextual%20%60--text-color%60).%5Cn//%20It%20MUST%20stay%20scoped%20to%20%60.obsidian-lib%60:%20an%20unscoped%20re-assert%20(it%20was%20%60body%20button%E2%80%A6%60,%5Cn//%200,1,2)%20lands%20on%20every%20button%20in%20the%20app%20and%20beats%20any%20other%20plugin's%20own%20button%20color%5Cn//%20Written%20at%200,1,1,%20which%20Obsidian's%20own%20rule%20used%20to%20lose%20to%20(obsidian-custom-attachment-location%2395).%5Cn//%20Defensive%20workaround%20%E2%80%94%20remove%20once%20the%20upstream%20fix%20ships%20(tldraw/obsidian-plugin%23210).%5Cn.obsidian-lib%20button:not(.clickable-icon)%20%7B%5Cn%20%20color:%20var(--text-color);%5Cn%7D%5Cn%22,%22.obsidian-lib%20%7B%5Cn%20%20&.tri-state-checkbox-component%20%7B%5Cn%20%20%20%20input%5Btype='checkbox'%5D:indeterminate%20%7B%5Cn%20%20%20%20%20%20appearance:%20checkbox;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22@mixin%20invalid%20%7B%5Cn%20%20box-shadow:%200%200%200%202px%20var(--text-error);%5Cn%7D%5Cn%5Cn//%20An%20input%20the%20user%20has%20not%20interacted%20with%20yet%20carries%20%60.untouched%60%20(set%20by%20%60PromptModal%60),%20so%20a%20modal%20that%5Cn//%20opens%20invalid%20by%20design%20does%20not%20greet%20the%20user%20in%20red.%20Both%20blocks%20below%20must%20be%20gated:%20the%20input%20is%5Cn//%20focused%20on%20open,%20so%20the%20focus%20block%20alone%20would%20keep%20painting%20it.%5Cn.obsidian-lib%20%7B%5Cn%20%20:invalid:not(.untouched)%20%7B%5Cn%20%20%20%20@include%20invalid;%5Cn%20%20%7D%5Cn%5Cn%20%20input.metadata-input-text,%5Cn%20%20input%5Btype='date'%5D,%5Cn%20%20input%5Btype='datetime-local'%5D,%5Cn%20%20input%5Btype='email'%5D,%5Cn%20%20input%5Btype='number'%5D,%5Cn%20%20input%5Btype='password'%5D,%5Cn%20%20input%5Btype='search'%5D,%5Cn%20%20input%5Btype='text'%5D,%5Cn%20%20textarea%20%7B%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus-visible,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20&:invalid:not(.untouched)%20%7B%5Cn%20%20%20%20%20%20%20%20@include%20invalid;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.setting-component-wrapper%20%7B%5Cn%20%20%20%20position:%20relative;%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%7D%5Cn%5Cn%20%20&.overlay-validator%20%7B%5Cn%20%20%20%20caret-color:%20transparent;%5Cn%20%20%20%20cursor:%20default;%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20background-color:%20transparent;%5Cn%20%20%20%20border:%20none;%5Cn%20%20%20%20outline:%20none;%5Cn%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20z-index:%209999;%5Cn%20%20%20%20left:%200;%5Cn%20%20%20%20top:%200;%5Cn%20%20%20%20width:%20100%25;%5Cn%20%20%20%20height:%20100%25;%5Cn%20%20%7D%5Cn%5Cn%20%20&.tooltip.tooltip-validator%20%7B%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20top:%20calc(100%25%20+%208px);%5Cn%20%20%20%20width:%20max-content;%5Cn%20%20%7D%5Cn%7D%5Cn%22%5D%7D */