@sparqjs/schema-vue 0.1.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 (190) hide show
  1. package/dist/asset/index.d.ts +5 -0
  2. package/dist/asset/index.d.ts.map +1 -0
  3. package/dist/asset/picker/AssetPickerParts.d.ts +43 -0
  4. package/dist/asset/picker/AssetPickerParts.d.ts.map +1 -0
  5. package/dist/asset/picker/AssetPickerRoot.d.ts +36 -0
  6. package/dist/asset/picker/AssetPickerRoot.d.ts.map +1 -0
  7. package/dist/asset/picker/AssetPickerServerPanel.d.ts +38 -0
  8. package/dist/asset/picker/AssetPickerServerPanel.d.ts.map +1 -0
  9. package/dist/asset/picker/index.d.ts +4 -0
  10. package/dist/asset/picker/index.d.ts.map +1 -0
  11. package/dist/asset/picker/service.d.ts +4 -0
  12. package/dist/asset/picker/service.d.ts.map +1 -0
  13. package/dist/asset/picker/types.d.ts +50 -0
  14. package/dist/asset/picker/types.d.ts.map +1 -0
  15. package/dist/asset/preview/AssetPreview.d.ts +64 -0
  16. package/dist/asset/preview/AssetPreview.d.ts.map +1 -0
  17. package/dist/asset/preview/index.d.ts +3 -0
  18. package/dist/asset/preview/index.d.ts.map +1 -0
  19. package/dist/asset/preview/registry.d.ts +35 -0
  20. package/dist/asset/preview/registry.d.ts.map +1 -0
  21. package/dist/asset/service.d.ts +39 -0
  22. package/dist/asset/service.d.ts.map +1 -0
  23. package/dist/asset/upload/AssetUploadPanel.d.ts +82 -0
  24. package/dist/asset/upload/AssetUploadPanel.d.ts.map +1 -0
  25. package/dist/asset/upload/executor.d.ts +59 -0
  26. package/dist/asset/upload/executor.d.ts.map +1 -0
  27. package/dist/asset/upload/files.d.ts +16 -0
  28. package/dist/asset/upload/files.d.ts.map +1 -0
  29. package/dist/asset/upload/hash-file.d.ts +7 -0
  30. package/dist/asset/upload/hash-file.d.ts.map +1 -0
  31. package/dist/asset/upload/hash-worker.d.ts +2 -0
  32. package/dist/asset/upload/hash-worker.d.ts.map +1 -0
  33. package/dist/asset/upload/index.d.ts +6 -0
  34. package/dist/asset/upload/index.d.ts.map +1 -0
  35. package/dist/asset/upload/queue.d.ts +23 -0
  36. package/dist/asset/upload/queue.d.ts.map +1 -0
  37. package/dist/assets/hash-worker-DEktbSny.js +8 -0
  38. package/dist/assets/hash-worker-DEktbSny.js.map +1 -0
  39. package/dist/components/SparqView.d.ts +65 -0
  40. package/dist/components/SparqView.d.ts.map +1 -0
  41. package/dist/custom-components/IconInput/IconInput.d.ts +45 -0
  42. package/dist/custom-components/IconInput/IconInput.d.ts.map +1 -0
  43. package/dist/custom-components/IconInput/SqIcon.d.ts +29 -0
  44. package/dist/custom-components/IconInput/SqIcon.d.ts.map +1 -0
  45. package/dist/custom-components/IconInput/SqIconInput.d.ts +184 -0
  46. package/dist/custom-components/IconInput/SqIconInput.d.ts.map +1 -0
  47. package/dist/custom-components/IconInput/index.d.ts +5 -0
  48. package/dist/custom-components/IconInput/index.d.ts.map +1 -0
  49. package/dist/custom-components/JsonEditor/JsonEditor.d.ts +39 -0
  50. package/dist/custom-components/JsonEditor/JsonEditor.d.ts.map +1 -0
  51. package/dist/custom-components/JsonEditor/SqJson.d.ts +103 -0
  52. package/dist/custom-components/JsonEditor/SqJson.d.ts.map +1 -0
  53. package/dist/custom-components/JsonEditor/index.d.ts +5 -0
  54. package/dist/custom-components/JsonEditor/index.d.ts.map +1 -0
  55. package/dist/custom-components/KeyValueEditor/KeyValueEditor.d.ts +37 -0
  56. package/dist/custom-components/KeyValueEditor/KeyValueEditor.d.ts.map +1 -0
  57. package/dist/custom-components/KeyValueEditor/SqKeyValue.d.ts +102 -0
  58. package/dist/custom-components/KeyValueEditor/SqKeyValue.d.ts.map +1 -0
  59. package/dist/custom-components/KeyValueEditor/index.d.ts +5 -0
  60. package/dist/custom-components/KeyValueEditor/index.d.ts.map +1 -0
  61. package/dist/custom-components/RichText/RichText.d.ts +49 -0
  62. package/dist/custom-components/RichText/RichText.d.ts.map +1 -0
  63. package/dist/custom-components/RichText/SqRichText.d.ts +139 -0
  64. package/dist/custom-components/RichText/SqRichText.d.ts.map +1 -0
  65. package/dist/custom-components/RichText/index.d.ts +3 -0
  66. package/dist/custom-components/RichText/index.d.ts.map +1 -0
  67. package/dist/custom-components/Upload/SqFileUpload.d.ts +42 -0
  68. package/dist/custom-components/Upload/SqFileUpload.d.ts.map +1 -0
  69. package/dist/custom-components/Upload/SqImageUpload.d.ts +42 -0
  70. package/dist/custom-components/Upload/SqImageUpload.d.ts.map +1 -0
  71. package/dist/custom-components/Upload/SqUpload.d.ts +45 -0
  72. package/dist/custom-components/Upload/SqUpload.d.ts.map +1 -0
  73. package/dist/custom-components/Upload/Upload.d.ts +44 -0
  74. package/dist/custom-components/Upload/Upload.d.ts.map +1 -0
  75. package/dist/custom-components/Upload/index.d.ts +5 -0
  76. package/dist/custom-components/Upload/index.d.ts.map +1 -0
  77. package/dist/custom-components/index.d.ts +681 -0
  78. package/dist/custom-components/index.d.ts.map +1 -0
  79. package/dist/custom-components/shared/props.d.ts +5 -0
  80. package/dist/custom-components/shared/props.d.ts.map +1 -0
  81. package/dist/custom-components/shared/render.d.ts +4 -0
  82. package/dist/custom-components/shared/render.d.ts.map +1 -0
  83. package/dist/custom-components/shared/standalone.d.ts +53 -0
  84. package/dist/custom-components/shared/standalone.d.ts.map +1 -0
  85. package/dist/custom-components/types.d.ts +20 -0
  86. package/dist/custom-components/types.d.ts.map +1 -0
  87. package/dist/display-format.d.ts +2 -0
  88. package/dist/display-format.d.ts.map +1 -0
  89. package/dist/index.d.ts +15 -0
  90. package/dist/index.d.ts.map +1 -0
  91. package/dist/index.js +5995 -0
  92. package/dist/index.js.map +1 -0
  93. package/dist/install.d.ts +9 -0
  94. package/dist/install.d.ts.map +1 -0
  95. package/dist/keys.d.ts +74 -0
  96. package/dist/keys.d.ts.map +1 -0
  97. package/dist/presentation/host.d.ts +33 -0
  98. package/dist/presentation/host.d.ts.map +1 -0
  99. package/dist/presentation/index.d.ts +2 -0
  100. package/dist/presentation/index.d.ts.map +1 -0
  101. package/dist/registry/component.d.ts +121 -0
  102. package/dist/registry/component.d.ts.map +1 -0
  103. package/dist/registry/contribution.d.ts +95 -0
  104. package/dist/registry/contribution.d.ts.map +1 -0
  105. package/dist/registry/icon.d.ts +21 -0
  106. package/dist/registry/icon.d.ts.map +1 -0
  107. package/dist/registry/index.d.ts +5 -0
  108. package/dist/registry/index.d.ts.map +1 -0
  109. package/dist/registry/rich-text.d.ts +52 -0
  110. package/dist/registry/rich-text.d.ts.map +1 -0
  111. package/dist/render/action-context.d.ts +16 -0
  112. package/dist/render/action-context.d.ts.map +1 -0
  113. package/dist/render/audit.d.ts +5 -0
  114. package/dist/render/audit.d.ts.map +1 -0
  115. package/dist/render/container-structure.d.ts +20 -0
  116. package/dist/render/container-structure.d.ts.map +1 -0
  117. package/dist/render/context.d.ts +52 -0
  118. package/dist/render/context.d.ts.map +1 -0
  119. package/dist/render/embedded-view.d.ts +5 -0
  120. package/dist/render/embedded-view.d.ts.map +1 -0
  121. package/dist/render/field-node.d.ts +11 -0
  122. package/dist/render/field-node.d.ts.map +1 -0
  123. package/dist/render/index.d.ts +22 -0
  124. package/dist/render/index.d.ts.map +1 -0
  125. package/dist/render/layout-node.d.ts +22 -0
  126. package/dist/render/layout-node.d.ts.map +1 -0
  127. package/dist/render/page-structure.d.ts +7 -0
  128. package/dist/render/page-structure.d.ts.map +1 -0
  129. package/dist/render/structure.d.ts +7 -0
  130. package/dist/render/structure.d.ts.map +1 -0
  131. package/dist/render/view-node.d.ts +2 -0
  132. package/dist/render/view-node.d.ts.map +1 -0
  133. package/dist/render/view-structures.d.ts +24 -0
  134. package/dist/render/view-structures.d.ts.map +1 -0
  135. package/dist/runtime/controller.d.ts +4 -0
  136. package/dist/runtime/controller.d.ts.map +1 -0
  137. package/dist/runtime/feedback.d.ts +19 -0
  138. package/dist/runtime/feedback.d.ts.map +1 -0
  139. package/dist/runtime/index.d.ts +6 -0
  140. package/dist/runtime/index.d.ts.map +1 -0
  141. package/dist/runtime/renderer.d.ts +8 -0
  142. package/dist/runtime/renderer.d.ts.map +1 -0
  143. package/dist/runtime/state.d.ts +6 -0
  144. package/dist/runtime/state.d.ts.map +1 -0
  145. package/dist/runtime/write-back.d.ts +11 -0
  146. package/dist/runtime/write-back.d.ts.map +1 -0
  147. package/dist/semantic-components/FieldDisplay.d.ts +12 -0
  148. package/dist/semantic-components/FieldDisplay.d.ts.map +1 -0
  149. package/dist/semantic-components/FieldLink.d.ts +8 -0
  150. package/dist/semantic-components/FieldLink.d.ts.map +1 -0
  151. package/dist/semantic-components/HelpText.d.ts +8 -0
  152. package/dist/semantic-components/HelpText.d.ts.map +1 -0
  153. package/dist/semantic-components/SectionBlock.d.ts +8 -0
  154. package/dist/semantic-components/SectionBlock.d.ts.map +1 -0
  155. package/dist/semantic-components/StatusTag.d.ts +14 -0
  156. package/dist/semantic-components/StatusTag.d.ts.map +1 -0
  157. package/dist/semantic-components/Thumbnail.d.ts +8 -0
  158. package/dist/semantic-components/Thumbnail.d.ts.map +1 -0
  159. package/dist/semantic-components/index.d.ts +16 -0
  160. package/dist/semantic-components/index.d.ts.map +1 -0
  161. package/dist/semantic-components/types.d.ts +28 -0
  162. package/dist/semantic-components/types.d.ts.map +1 -0
  163. package/dist/shell/audit-panel.d.ts +12 -0
  164. package/dist/shell/audit-panel.d.ts.map +1 -0
  165. package/dist/shell/detail-shell.d.ts +4 -0
  166. package/dist/shell/detail-shell.d.ts.map +1 -0
  167. package/dist/shell/index.d.ts +3 -0
  168. package/dist/shell/index.d.ts.map +1 -0
  169. package/dist/types.d.ts +403 -0
  170. package/dist/types.d.ts.map +1 -0
  171. package/dist/ui/adapter.d.ts +53 -0
  172. package/dist/ui/adapter.d.ts.map +1 -0
  173. package/dist/ui/index.d.ts +4 -0
  174. package/dist/ui/index.d.ts.map +1 -0
  175. package/dist/ui/kit.d.ts +56 -0
  176. package/dist/ui/kit.d.ts.map +1 -0
  177. package/dist/ui/schema-ui.d.ts +86 -0
  178. package/dist/ui/schema-ui.d.ts.map +1 -0
  179. package/package.json +41 -0
  180. package/src/asset/picker/style.css +537 -0
  181. package/src/asset/preview/style.css +382 -0
  182. package/src/asset/upload/style.css +167 -0
  183. package/src/custom-components/IconInput/style.css +101 -0
  184. package/src/custom-components/KeyValueEditor/style.css +44 -0
  185. package/src/custom-components/Upload/style.css +313 -0
  186. package/src/detail/style.css +427 -0
  187. package/src/render/style.css +230 -0
  188. package/src/semantic-components/style.css +263 -0
  189. package/src/style.css +9 -0
  190. package/src/tokens.css +44 -0
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@sparqjs/schema-vue",
3
+ "version": "0.1.0",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "type": "module",
8
+ "main": "./dist/index.js",
9
+ "module": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js"
15
+ },
16
+ "./style.css": "./src/style.css"
17
+ },
18
+ "files": [
19
+ "dist",
20
+ "src/**/*.css"
21
+ ],
22
+ "sideEffects": [
23
+ "**/*.css"
24
+ ],
25
+ "dependencies": {
26
+ "hash-wasm": "^4.12.0",
27
+ "@sparqjs/schema-core": "0.1.0",
28
+ "@sparqjs/schema-protocol": "0.1.0"
29
+ },
30
+ "peerDependencies": {
31
+ "vue": "^3.4.0"
32
+ },
33
+ "devDependencies": {
34
+ "typescript": "^5.0.0",
35
+ "vite": "^8.0.14",
36
+ "@sparqjs/frontend-core": "0.0.0"
37
+ },
38
+ "scripts": {
39
+ "build": "vite build && tsc -b --emitDeclarationOnly --force"
40
+ }
41
+ }
@@ -0,0 +1,537 @@
1
+ @import '../preview/style.css';
2
+
3
+ .sparq-asset-picker {
4
+ --sparq-picker-primary: var(--sq-schema-primary);
5
+ --sparq-picker-primary-strong: var(--sq-schema-primary-strong);
6
+ --sparq-picker-primary-soft: color-mix(in srgb, var(--sq-schema-primary-soft) 84%, var(--sq-schema-surface));
7
+ --sparq-picker-primary-hover: color-mix(in srgb, var(--sq-schema-primary-soft) 60%, var(--sq-schema-surface));
8
+ --sparq-picker-accent: var(--sq-schema-accent);
9
+ --sparq-picker-danger: var(--sq-schema-danger);
10
+ --sparq-picker-danger-soft: color-mix(in srgb, var(--sq-schema-danger) 10%, var(--sq-schema-surface));
11
+ --sparq-picker-shell: var(--sq-schema-surface-muted);
12
+ --sparq-picker-border: var(--sq-schema-border);
13
+ --sparq-picker-border-strong: var(--sq-schema-border-strong);
14
+ --sparq-picker-surface: var(--sq-schema-surface);
15
+ --sparq-picker-soft: var(--sq-schema-surface-soft);
16
+ --sparq-picker-muted-surface: var(--sq-schema-surface-muted);
17
+ --sparq-picker-card: var(--sq-schema-surface);
18
+ --sparq-picker-text: var(--sq-schema-title);
19
+ --sparq-picker-subtle: var(--sq-schema-subtle);
20
+ --sparq-picker-muted: var(--sq-schema-muted);
21
+ --sparq-picker-soft-text: color-mix(in srgb, var(--sq-schema-muted) 72%, var(--sq-schema-surface));
22
+ --sparq-picker-shadow: var(--sq-schema-shadow-floating);
23
+ --sparq-picker-overlay: var(--sq-schema-overlay);
24
+ --sparq-picker-glass: color-mix(in srgb, var(--sq-schema-panel-glass) 92%, transparent);
25
+ font-family:
26
+ Inter,
27
+ ui-sans-serif,
28
+ system-ui,
29
+ -apple-system,
30
+ BlinkMacSystemFont,
31
+ 'Segoe UI',
32
+ sans-serif;
33
+ position: fixed;
34
+ inset: 0;
35
+ z-index: var(--sparq-asset-picker-z-index, 2100);
36
+ color: var(--sparq-picker-text);
37
+ }
38
+
39
+ .sparq-asset-picker__mask {
40
+ position: absolute;
41
+ inset: 0;
42
+ background: var(--sparq-picker-overlay);
43
+ backdrop-filter: blur(2px);
44
+ }
45
+
46
+ .sparq-asset-picker__dialog {
47
+ position: absolute;
48
+ top: 50%;
49
+ left: 50%;
50
+ display: grid;
51
+ grid-template-rows: auto auto auto minmax(0, 1fr);
52
+ width: min(1280px, calc(100vw - 32px));
53
+ height: min(860px, calc(100vh - 32px));
54
+ overflow: hidden;
55
+ transform: translate(-50%, -50%);
56
+ border: 1px solid var(--sparq-picker-border);
57
+ border-radius: var(--sq-schema-radius-xl);
58
+ background: var(--sparq-picker-shell);
59
+ box-shadow: var(--sparq-picker-shadow);
60
+ }
61
+
62
+ .sparq-asset-picker__header,
63
+ .sparq-asset-picker__toolbar {
64
+ display: flex;
65
+ align-items: center;
66
+ justify-content: space-between;
67
+ gap: 16px;
68
+ border-bottom: 1px solid var(--sparq-picker-border);
69
+ padding: 14px 18px;
70
+ }
71
+
72
+ .sparq-asset-picker__header {
73
+ background: var(--sparq-picker-surface);
74
+ }
75
+
76
+ .sparq-asset-picker__title {
77
+ font-size: 17px;
78
+ font-weight: 650;
79
+ letter-spacing: 0;
80
+ }
81
+
82
+ .sparq-asset-picker__subtitle,
83
+ .sparq-asset-picker__summary,
84
+ .sparq-asset-picker__empty {
85
+ color: var(--sparq-picker-muted);
86
+ font-size: 13px;
87
+ }
88
+
89
+ .sparq-asset-picker__title-group {
90
+ display: grid;
91
+ min-width: 0;
92
+ gap: 3px;
93
+ }
94
+
95
+ .sparq-asset-picker__tabs,
96
+ .sparq-asset-picker__toolbar-actions,
97
+ .sparq-asset-picker__pagination-actions {
98
+ display: flex;
99
+ align-items: center;
100
+ gap: 8px;
101
+ }
102
+
103
+ .sparq-asset-picker__tabs,
104
+ .sparq-asset-picker__segment {
105
+ display: inline-flex;
106
+ align-items: center;
107
+ gap: 2px;
108
+ border: 1px solid var(--sparq-picker-border);
109
+ border-radius: var(--sq-schema-radius-sm);
110
+ background: var(--sparq-picker-muted-surface);
111
+ padding: 3px;
112
+ }
113
+
114
+ .sparq-asset-picker__tab,
115
+ .sparq-asset-picker__button,
116
+ .sparq-asset-picker__segment-button {
117
+ display: inline-flex;
118
+ align-items: center;
119
+ justify-content: center;
120
+ gap: 6px;
121
+ min-height: 32px;
122
+ border: 1px solid var(--sparq-picker-border);
123
+ border-radius: var(--sq-schema-radius-xs);
124
+ background: var(--sparq-picker-surface);
125
+ box-shadow: var(--sq-schema-shadow-soft);
126
+ color: var(--sparq-picker-subtle);
127
+ cursor: pointer;
128
+ padding: 0 12px;
129
+ font-size: 13px;
130
+ font-weight: 500;
131
+ line-height: 1;
132
+ transition:
133
+ border-color 160ms ease,
134
+ background-color 160ms ease,
135
+ box-shadow 160ms ease,
136
+ color 160ms ease;
137
+ white-space: nowrap;
138
+ }
139
+
140
+ .sparq-asset-picker__tab,
141
+ .sparq-asset-picker__segment-button {
142
+ min-height: 28px;
143
+ border-color: transparent;
144
+ background: transparent;
145
+ box-shadow: none;
146
+ color: var(--sparq-picker-muted);
147
+ }
148
+
149
+ .sparq-asset-picker__tab.is-active,
150
+ .sparq-asset-picker__segment-button.is-active {
151
+ border-color: var(--sparq-picker-border);
152
+ background: var(--sparq-picker-surface);
153
+ box-shadow: var(--sq-schema-shadow-soft);
154
+ color: var(--sparq-picker-primary);
155
+ font-weight: 600;
156
+ }
157
+
158
+ .sparq-asset-picker__button.is-primary {
159
+ border-color: var(--sparq-picker-primary);
160
+ background: var(--sparq-picker-primary);
161
+ box-shadow: var(--sq-schema-shadow-soft);
162
+ color: #ffffff;
163
+ }
164
+
165
+ .sparq-asset-picker__button.is-danger {
166
+ border-color: color-mix(in srgb, var(--sparq-picker-danger) 24%, var(--sparq-picker-border));
167
+ color: var(--sparq-picker-danger);
168
+ }
169
+
170
+ .sparq-asset-picker__tab:hover:not(:disabled),
171
+ .sparq-asset-picker__segment-button:hover:not(:disabled) {
172
+ background: var(--sparq-picker-glass);
173
+ color: var(--sparq-picker-text);
174
+ }
175
+
176
+ .sparq-asset-picker__button:hover:not(:disabled) {
177
+ border-color: color-mix(in srgb, var(--sparq-picker-primary) 42%, var(--sparq-picker-border));
178
+ background: var(--sparq-picker-primary-hover);
179
+ color: var(--sparq-picker-primary);
180
+ }
181
+
182
+ .sparq-asset-picker__button.is-primary:hover:not(:disabled) {
183
+ border-color: var(--sparq-picker-primary-strong);
184
+ background: var(--sparq-picker-primary-strong);
185
+ color: #ffffff;
186
+ }
187
+
188
+ .sparq-asset-picker__button.is-danger:hover:not(:disabled) {
189
+ border-color: color-mix(in srgb, var(--sparq-picker-danger) 42%, var(--sparq-picker-border));
190
+ background: var(--sparq-picker-danger-soft);
191
+ color: var(--sparq-picker-danger);
192
+ }
193
+
194
+ .sparq-asset-picker__tab:focus-visible,
195
+ .sparq-asset-picker__button:focus-visible,
196
+ .sparq-asset-picker__segment-button:focus-visible,
197
+ .sparq-asset-picker__group:focus-visible,
198
+ .sparq-asset-picker__card:focus-visible {
199
+ outline: none;
200
+ box-shadow: 0 0 0 3px var(--sparq-picker-primary-soft);
201
+ }
202
+
203
+ .sparq-asset-picker__tab:disabled,
204
+ .sparq-asset-picker__button:disabled,
205
+ .sparq-asset-picker__segment-button:disabled {
206
+ border-color: var(--sparq-picker-border);
207
+ background: var(--sparq-picker-muted-surface);
208
+ box-shadow: none;
209
+ color: var(--sparq-picker-soft-text);
210
+ cursor: not-allowed;
211
+ }
212
+
213
+ .sparq-asset-picker__notice {
214
+ border-bottom: 1px solid color-mix(in srgb, var(--sparq-picker-accent) 18%, var(--sparq-picker-border));
215
+ background: color-mix(in srgb, var(--sparq-picker-accent) 9%, var(--sparq-picker-surface));
216
+ color: var(--sq-schema-warning-strong);
217
+ padding: 8px 18px;
218
+ font-size: 13px;
219
+ font-weight: 500;
220
+ }
221
+
222
+ .sparq-asset-picker__body {
223
+ display: grid;
224
+ grid-template-columns: minmax(0, 1fr) 280px;
225
+ gap: 14px;
226
+ min-height: 0;
227
+ overflow: hidden;
228
+ padding: 14px;
229
+ }
230
+
231
+ .sparq-asset-picker__server {
232
+ display: grid;
233
+ grid-template-columns: 188px minmax(0, 1fr);
234
+ gap: 14px;
235
+ min-height: 0;
236
+ }
237
+
238
+ .sparq-asset-picker__groups,
239
+ .sparq-asset-picker__panel,
240
+ .sparq-asset-picker__selected {
241
+ min-height: 0;
242
+ overflow: auto;
243
+ border: 1px solid var(--sparq-picker-border);
244
+ border-radius: var(--sq-schema-radius);
245
+ background: var(--sparq-picker-surface);
246
+ padding: 12px;
247
+ }
248
+
249
+ .sparq-asset-picker__groups {
250
+ display: grid;
251
+ align-content: start;
252
+ gap: 8px;
253
+ }
254
+
255
+ .sparq-asset-picker__group {
256
+ border: 1px solid transparent;
257
+ border-radius: var(--sq-schema-radius-xs);
258
+ background: transparent;
259
+ color: var(--sparq-picker-text);
260
+ cursor: pointer;
261
+ padding: 10px;
262
+ text-align: left;
263
+ transition:
264
+ background-color 160ms ease,
265
+ border-color 160ms ease,
266
+ color 160ms ease;
267
+ }
268
+
269
+ .sparq-asset-picker__group:hover {
270
+ background: var(--sparq-picker-soft);
271
+ }
272
+
273
+ .sparq-asset-picker__group.is-active {
274
+ border-color: color-mix(in srgb, var(--sparq-picker-primary) 24%, var(--sparq-picker-border));
275
+ background: var(--sparq-picker-primary-soft);
276
+ color: var(--sparq-picker-primary);
277
+ font-weight: 600;
278
+ }
279
+
280
+ .sparq-asset-picker__panel {
281
+ display: grid;
282
+ grid-template-rows: auto minmax(0, 1fr) auto;
283
+ gap: 14px;
284
+ }
285
+
286
+ .sparq-asset-picker__filters,
287
+ .sparq-asset-picker__remote-form {
288
+ display: grid;
289
+ grid-template-columns: minmax(0, 1fr) 160px auto auto;
290
+ gap: 8px;
291
+ align-items: center;
292
+ }
293
+
294
+ .sparq-asset-picker__input,
295
+ .sparq-asset-picker__select {
296
+ width: 100%;
297
+ min-height: 36px;
298
+ }
299
+
300
+ .sparq-asset-picker__grid {
301
+ display: grid;
302
+ grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
303
+ grid-auto-rows: max-content;
304
+ align-content: start;
305
+ align-items: start;
306
+ gap: 12px;
307
+ min-height: 0;
308
+ overflow: auto;
309
+ }
310
+
311
+ .sparq-asset-picker__card {
312
+ position: relative;
313
+ display: grid;
314
+ grid-template-rows: auto auto auto;
315
+ width: 100%;
316
+ height: auto;
317
+ min-height: 0;
318
+ overflow: hidden;
319
+ border: 1px solid var(--sparq-picker-border);
320
+ border-radius: var(--sq-schema-radius-sm);
321
+ background: var(--sparq-picker-surface);
322
+ box-shadow: var(--sq-schema-shadow-soft);
323
+ cursor: pointer;
324
+ padding: 0;
325
+ text-align: left;
326
+ transition:
327
+ border-color 160ms ease,
328
+ box-shadow 160ms ease;
329
+ }
330
+
331
+ .sparq-asset-picker__card:hover:not(:disabled) {
332
+ border-color: color-mix(in srgb, var(--sparq-picker-primary) 34%, var(--sparq-picker-border));
333
+ box-shadow: var(--sq-schema-shadow-soft);
334
+ }
335
+
336
+ .sparq-asset-picker__card.is-active {
337
+ border-color: var(--sparq-picker-primary);
338
+ box-shadow:
339
+ 0 0 0 3px var(--sparq-picker-primary-soft),
340
+ var(--sq-schema-shadow-soft);
341
+ }
342
+
343
+ .sparq-asset-picker__card.is-disabled {
344
+ cursor: not-allowed;
345
+ opacity: 0.5;
346
+ }
347
+
348
+ .sparq-asset-picker__card.is-limit-reached {
349
+ border-style: dashed;
350
+ }
351
+
352
+ .sparq-asset-picker__checkmark {
353
+ position: absolute;
354
+ top: 8px;
355
+ right: 8px;
356
+ z-index: 1;
357
+ display: grid;
358
+ width: 24px;
359
+ height: 24px;
360
+ place-items: center;
361
+ border-radius: var(--sq-schema-radius-pill);
362
+ border: 1px solid color-mix(in srgb, var(--sparq-picker-surface) 78%, transparent);
363
+ background: var(--sparq-picker-glass);
364
+ box-shadow: var(--sq-schema-shadow-soft);
365
+ color: transparent;
366
+ font-size: 13px;
367
+ font-weight: 700;
368
+ }
369
+
370
+ .sparq-asset-picker__card.is-active .sparq-asset-picker__checkmark {
371
+ background: var(--sparq-picker-primary);
372
+ color: #ffffff;
373
+ }
374
+
375
+ .sparq-asset-picker__asset-title,
376
+ .sparq-asset-picker__asset-meta {
377
+ overflow: hidden;
378
+ padding: 0 12px;
379
+ text-overflow: ellipsis;
380
+ white-space: nowrap;
381
+ }
382
+
383
+ .sparq-asset-picker__asset-title {
384
+ margin-top: 9px;
385
+ color: var(--sparq-picker-text);
386
+ font-size: 13px;
387
+ font-weight: 600;
388
+ }
389
+
390
+ .sparq-asset-picker__asset-meta {
391
+ margin: 6px 0 12px;
392
+ color: var(--sparq-picker-muted);
393
+ font-size: 12px;
394
+ }
395
+
396
+ .sparq-asset-picker__table-wrap {
397
+ min-height: 0;
398
+ overflow: auto;
399
+ }
400
+
401
+ .sparq-asset-picker__table {
402
+ width: 100%;
403
+ border-collapse: collapse;
404
+ font-size: 13px;
405
+ }
406
+
407
+ .sparq-asset-picker__table thead {
408
+ position: sticky;
409
+ top: 0;
410
+ z-index: 1;
411
+ background: var(--sparq-picker-soft);
412
+ }
413
+
414
+ .sparq-asset-picker__table th,
415
+ .sparq-asset-picker__table td {
416
+ border-bottom: 1px solid var(--sparq-picker-border);
417
+ padding: 9px 8px;
418
+ text-align: left;
419
+ }
420
+
421
+ .sparq-asset-picker__table th {
422
+ color: var(--sparq-picker-muted);
423
+ font-weight: 600;
424
+ }
425
+
426
+ .sparq-asset-picker__table tbody tr:hover {
427
+ background: var(--sparq-picker-soft);
428
+ }
429
+
430
+ .sparq-asset-picker__pagination {
431
+ display: flex;
432
+ align-items: center;
433
+ justify-content: space-between;
434
+ gap: 12px;
435
+ border-top: 1px solid var(--sparq-picker-border);
436
+ padding-top: 12px;
437
+ color: var(--sparq-picker-muted);
438
+ font-size: 13px;
439
+ }
440
+
441
+ .sparq-asset-picker__selected {
442
+ display: grid;
443
+ grid-template-rows: auto minmax(0, 1fr);
444
+ gap: 10px;
445
+ }
446
+
447
+ .sparq-asset-picker__selected-title {
448
+ color: var(--sparq-picker-text);
449
+ font-size: 13px;
450
+ font-weight: 650;
451
+ }
452
+
453
+ .sparq-asset-picker__selected-list {
454
+ display: grid;
455
+ align-content: start;
456
+ gap: 8px;
457
+ overflow: auto;
458
+ }
459
+
460
+ .sparq-asset-picker__selected-item {
461
+ display: grid;
462
+ grid-template-columns: 44px minmax(0, 1fr) auto;
463
+ align-items: center;
464
+ gap: 8px;
465
+ border: 1px solid var(--sparq-picker-border);
466
+ border-radius: var(--sq-schema-radius-sm);
467
+ background: var(--sparq-picker-soft);
468
+ padding: 6px;
469
+ }
470
+
471
+ .sparq-asset-picker__selected-name {
472
+ overflow: hidden;
473
+ color: var(--sparq-picker-text);
474
+ font-size: 13px;
475
+ font-weight: 500;
476
+ text-overflow: ellipsis;
477
+ white-space: nowrap;
478
+ }
479
+
480
+ .sparq-asset-picker__selected-empty {
481
+ display: grid;
482
+ min-height: 160px;
483
+ place-items: center;
484
+ border: 1px dashed var(--sparq-picker-border);
485
+ border-radius: var(--sq-schema-radius-sm);
486
+ color: var(--sparq-picker-soft-text);
487
+ font-size: 13px;
488
+ }
489
+
490
+ .sparq-asset-picker__check {
491
+ display: flex;
492
+ align-items: center;
493
+ gap: 6px;
494
+ color: var(--sparq-picker-muted);
495
+ font-size: 13px;
496
+ }
497
+
498
+ .sparq-asset-picker__check input {
499
+ accent-color: var(--sparq-picker-primary);
500
+ }
501
+
502
+ @media (prefers-reduced-motion: reduce) {
503
+ .sparq-asset-picker *,
504
+ .sparq-asset-picker *::before,
505
+ .sparq-asset-picker *::after {
506
+ transition-duration: 0.01ms !important;
507
+ animation-duration: 0.01ms !important;
508
+ animation-iteration-count: 1 !important;
509
+ }
510
+ }
511
+
512
+ @media (max-width: 900px) {
513
+ .sparq-asset-picker__dialog {
514
+ width: calc(100vw - 20px);
515
+ height: calc(100vh - 20px);
516
+ }
517
+
518
+ .sparq-asset-picker__header,
519
+ .sparq-asset-picker__toolbar {
520
+ align-items: flex-start;
521
+ flex-wrap: wrap;
522
+ }
523
+
524
+ .sparq-asset-picker__body,
525
+ .sparq-asset-picker__server {
526
+ grid-template-columns: 1fr;
527
+ }
528
+
529
+ .sparq-asset-picker__selected {
530
+ min-height: 160px;
531
+ }
532
+
533
+ .sparq-asset-picker__filters,
534
+ .sparq-asset-picker__remote-form {
535
+ grid-template-columns: 1fr;
536
+ }
537
+ }