@dxos/ui-theme 0.0.0 → 0.8.4-main.52d7546f51

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 (224) hide show
  1. package/dist/lib/browser/index.mjs +3499 -0
  2. package/dist/lib/browser/index.mjs.map +7 -0
  3. package/dist/lib/browser/meta.json +1 -0
  4. package/dist/lib/node-esm/index.mjs +3501 -0
  5. package/dist/lib/node-esm/index.mjs.map +7 -0
  6. package/dist/lib/node-esm/meta.json +1 -0
  7. package/dist/plugin/node-cjs/chunk-TH5YZMTA.cjs +1633 -0
  8. package/dist/plugin/node-cjs/chunk-TH5YZMTA.cjs.map +7 -0
  9. package/dist/plugin/node-cjs/chunk-UUMDOU7E.cjs +79 -0
  10. package/dist/plugin/node-cjs/chunk-UUMDOU7E.cjs.map +7 -0
  11. package/dist/plugin/node-cjs/config/tailwind.cjs +29 -0
  12. package/dist/plugin/node-cjs/config/tailwind.cjs.map +7 -0
  13. package/dist/plugin/node-cjs/meta.json +1 -0
  14. package/dist/plugin/node-cjs/plugins/esbuild-plugin.cjs +90 -0
  15. package/dist/plugin/node-cjs/plugins/esbuild-plugin.cjs.map +7 -0
  16. package/dist/plugin/node-cjs/plugins/plugin.cjs +124 -0
  17. package/dist/plugin/node-cjs/plugins/plugin.cjs.map +7 -0
  18. package/dist/plugin/node-cjs/theme.css +1378 -0
  19. package/dist/plugin/node-cjs/theme.css.map +7 -0
  20. package/dist/plugin/node-esm/chunk-6EGZAB2N.mjs +1628 -0
  21. package/dist/plugin/node-esm/chunk-6EGZAB2N.mjs.map +7 -0
  22. package/dist/plugin/node-esm/chunk-AFRHJHP4.mjs +49 -0
  23. package/dist/plugin/node-esm/chunk-AFRHJHP4.mjs.map +7 -0
  24. package/dist/plugin/node-esm/config/tailwind.mjs +8 -0
  25. package/dist/plugin/node-esm/config/tailwind.mjs.map +7 -0
  26. package/dist/plugin/node-esm/meta.json +1 -0
  27. package/dist/plugin/node-esm/plugins/esbuild-plugin.mjs +63 -0
  28. package/dist/plugin/node-esm/plugins/esbuild-plugin.mjs.map +7 -0
  29. package/dist/plugin/node-esm/plugins/plugin.mjs +98 -0
  30. package/dist/plugin/node-esm/plugins/plugin.mjs.map +7 -0
  31. package/dist/plugin/node-esm/theme.css +1378 -0
  32. package/dist/plugin/node-esm/theme.css.map +7 -0
  33. package/dist/types/src/Tokens.stories.d.ts +10 -0
  34. package/dist/types/src/Tokens.stories.d.ts.map +1 -0
  35. package/dist/types/src/config/index.d.ts +3 -0
  36. package/dist/types/src/config/index.d.ts.map +1 -0
  37. package/dist/types/src/config/tailwind.d.ts +9 -0
  38. package/dist/types/src/config/tailwind.d.ts.map +1 -0
  39. package/dist/types/src/config/tokens/colors/alias-colors.d.ts +21 -0
  40. package/dist/types/src/config/tokens/colors/alias-colors.d.ts.map +1 -0
  41. package/dist/types/src/config/tokens/colors/index.d.ts +5 -0
  42. package/dist/types/src/config/tokens/colors/index.d.ts.map +1 -0
  43. package/dist/types/src/config/tokens/colors/physical-colors.d.ts +23 -0
  44. package/dist/types/src/config/tokens/colors/physical-colors.d.ts.map +1 -0
  45. package/dist/types/src/config/tokens/colors/semantic-colors.d.ts +192 -0
  46. package/dist/types/src/config/tokens/colors/semantic-colors.d.ts.map +1 -0
  47. package/dist/types/src/config/tokens/colors/sememes-calls.d.ts +3 -0
  48. package/dist/types/src/config/tokens/colors/sememes-calls.d.ts.map +1 -0
  49. package/dist/types/src/config/tokens/colors/sememes-codemirror.d.ts +43 -0
  50. package/dist/types/src/config/tokens/colors/sememes-codemirror.d.ts.map +1 -0
  51. package/dist/types/src/config/tokens/colors/sememes-hue.d.ts +4 -0
  52. package/dist/types/src/config/tokens/colors/sememes-hue.d.ts.map +1 -0
  53. package/dist/types/src/config/tokens/colors/sememes-sheet.d.ts +58 -0
  54. package/dist/types/src/config/tokens/colors/sememes-sheet.d.ts.map +1 -0
  55. package/dist/types/src/config/tokens/colors/sememes-system.d.ts +104 -0
  56. package/dist/types/src/config/tokens/colors/sememes-system.d.ts.map +1 -0
  57. package/dist/types/src/config/tokens/colors/types.d.ts +5 -0
  58. package/dist/types/src/config/tokens/colors/types.d.ts.map +1 -0
  59. package/dist/types/src/config/tokens/index.d.ts +3 -0
  60. package/dist/types/src/config/tokens/index.d.ts.map +1 -0
  61. package/dist/types/src/config/tokens/lengths.d.ts +142 -0
  62. package/dist/types/src/config/tokens/lengths.d.ts.map +1 -0
  63. package/dist/types/src/config/tokens/sizes.d.ts +9 -0
  64. package/dist/types/src/config/tokens/sizes.d.ts.map +1 -0
  65. package/dist/types/src/config/tokens/tokens.d.ts +498 -0
  66. package/dist/types/src/config/tokens/tokens.d.ts.map +1 -0
  67. package/dist/types/src/index.d.ts +13 -0
  68. package/dist/types/src/index.d.ts.map +1 -0
  69. package/dist/types/src/plugins/esbuild-plugin.d.ts +9 -0
  70. package/dist/types/src/plugins/esbuild-plugin.d.ts.map +1 -0
  71. package/dist/types/src/plugins/plugin.d.ts +20 -0
  72. package/dist/types/src/plugins/plugin.d.ts.map +1 -0
  73. package/dist/types/src/plugins/resolveContent.d.ts +2 -0
  74. package/dist/types/src/plugins/resolveContent.d.ts.map +1 -0
  75. package/dist/types/src/styles/components/anchored-overflow.d.ts +6 -0
  76. package/dist/types/src/styles/components/anchored-overflow.d.ts.map +1 -0
  77. package/dist/types/src/styles/components/avatar.d.ts +21 -0
  78. package/dist/types/src/styles/components/avatar.d.ts.map +1 -0
  79. package/dist/types/src/styles/components/breadcrumb.d.ts +9 -0
  80. package/dist/types/src/styles/components/breadcrumb.d.ts.map +1 -0
  81. package/dist/types/src/styles/components/button.d.ts +19 -0
  82. package/dist/types/src/styles/components/button.d.ts.map +1 -0
  83. package/dist/types/src/styles/components/dialog.d.ts +17 -0
  84. package/dist/types/src/styles/components/dialog.d.ts.map +1 -0
  85. package/dist/types/src/styles/components/icon-button.d.ts +8 -0
  86. package/dist/types/src/styles/components/icon-button.d.ts.map +1 -0
  87. package/dist/types/src/styles/components/icon.d.ts +7 -0
  88. package/dist/types/src/styles/components/icon.d.ts.map +1 -0
  89. package/dist/types/src/styles/components/index.d.ts +25 -0
  90. package/dist/types/src/styles/components/index.d.ts.map +1 -0
  91. package/dist/types/src/styles/components/input.d.ts +110 -0
  92. package/dist/types/src/styles/components/input.d.ts.map +1 -0
  93. package/dist/types/src/styles/components/link.d.ts +7 -0
  94. package/dist/types/src/styles/components/link.d.ts.map +1 -0
  95. package/dist/types/src/styles/components/list.d.ts +14 -0
  96. package/dist/types/src/styles/components/list.d.ts.map +1 -0
  97. package/dist/types/src/styles/components/main.d.ts +28 -0
  98. package/dist/types/src/styles/components/main.d.ts.map +1 -0
  99. package/dist/types/src/styles/components/menu.d.ts +13 -0
  100. package/dist/types/src/styles/components/menu.d.ts.map +1 -0
  101. package/dist/types/src/styles/components/message.d.ts +11 -0
  102. package/dist/types/src/styles/components/message.d.ts.map +1 -0
  103. package/dist/types/src/styles/components/popover.d.ts +11 -0
  104. package/dist/types/src/styles/components/popover.d.ts.map +1 -0
  105. package/dist/types/src/styles/components/scroll-area.d.ts +16 -0
  106. package/dist/types/src/styles/components/scroll-area.d.ts.map +1 -0
  107. package/dist/types/src/styles/components/select.d.ts +13 -0
  108. package/dist/types/src/styles/components/select.d.ts.map +1 -0
  109. package/dist/types/src/styles/components/separator.d.ts +8 -0
  110. package/dist/types/src/styles/components/separator.d.ts.map +1 -0
  111. package/dist/types/src/styles/components/skeleton.d.ts +7 -0
  112. package/dist/types/src/styles/components/skeleton.d.ts.map +1 -0
  113. package/dist/types/src/styles/components/status.d.ts +9 -0
  114. package/dist/types/src/styles/components/status.d.ts.map +1 -0
  115. package/dist/types/src/styles/components/tag.d.ts +7 -0
  116. package/dist/types/src/styles/components/tag.d.ts.map +1 -0
  117. package/dist/types/src/styles/components/toast.d.ts +12 -0
  118. package/dist/types/src/styles/components/toast.d.ts.map +1 -0
  119. package/dist/types/src/styles/components/toolbar.d.ts +11 -0
  120. package/dist/types/src/styles/components/toolbar.d.ts.map +1 -0
  121. package/dist/types/src/styles/components/tooltip.d.ts +8 -0
  122. package/dist/types/src/styles/components/tooltip.d.ts.map +1 -0
  123. package/dist/types/src/styles/components/treegrid.d.ts +10 -0
  124. package/dist/types/src/styles/components/treegrid.d.ts.map +1 -0
  125. package/dist/types/src/styles/fragments/density.d.ts +13 -0
  126. package/dist/types/src/styles/fragments/density.d.ts.map +1 -0
  127. package/dist/types/src/styles/fragments/dimension.d.ts +5 -0
  128. package/dist/types/src/styles/fragments/dimension.d.ts.map +1 -0
  129. package/dist/types/src/styles/fragments/disabled.d.ts +3 -0
  130. package/dist/types/src/styles/fragments/disabled.d.ts.map +1 -0
  131. package/dist/types/src/styles/fragments/elevation.d.ts +15 -0
  132. package/dist/types/src/styles/fragments/elevation.d.ts.map +1 -0
  133. package/dist/types/src/styles/fragments/focus.d.ts +6 -0
  134. package/dist/types/src/styles/fragments/focus.d.ts.map +1 -0
  135. package/dist/types/src/styles/fragments/group.d.ts +5 -0
  136. package/dist/types/src/styles/fragments/group.d.ts.map +1 -0
  137. package/dist/types/src/styles/fragments/hover.d.ts +17 -0
  138. package/dist/types/src/styles/fragments/hover.d.ts.map +1 -0
  139. package/dist/types/src/styles/fragments/index.d.ts +17 -0
  140. package/dist/types/src/styles/fragments/index.d.ts.map +1 -0
  141. package/dist/types/src/styles/fragments/layout.d.ts +3 -0
  142. package/dist/types/src/styles/fragments/layout.d.ts.map +1 -0
  143. package/dist/types/src/styles/fragments/motion.d.ts +2 -0
  144. package/dist/types/src/styles/fragments/motion.d.ts.map +1 -0
  145. package/dist/types/src/styles/fragments/ornament.d.ts +5 -0
  146. package/dist/types/src/styles/fragments/ornament.d.ts.map +1 -0
  147. package/dist/types/src/styles/fragments/selected.d.ts +13 -0
  148. package/dist/types/src/styles/fragments/selected.d.ts.map +1 -0
  149. package/dist/types/src/styles/fragments/shimmer.d.ts +3 -0
  150. package/dist/types/src/styles/fragments/shimmer.d.ts.map +1 -0
  151. package/dist/types/src/styles/fragments/size.d.ts +9 -0
  152. package/dist/types/src/styles/fragments/size.d.ts.map +1 -0
  153. package/dist/types/src/styles/fragments/surface.d.ts +9 -0
  154. package/dist/types/src/styles/fragments/surface.d.ts.map +1 -0
  155. package/dist/types/src/styles/fragments/text.d.ts +7 -0
  156. package/dist/types/src/styles/fragments/text.d.ts.map +1 -0
  157. package/dist/types/src/styles/fragments/valence.d.ts +13 -0
  158. package/dist/types/src/styles/fragments/valence.d.ts.map +1 -0
  159. package/dist/types/src/styles/index.d.ts +5 -0
  160. package/dist/types/src/styles/index.d.ts.map +1 -0
  161. package/dist/types/src/styles/primitives/container.d.ts +15 -0
  162. package/dist/types/src/styles/primitives/container.d.ts.map +1 -0
  163. package/dist/types/src/styles/primitives/index.d.ts +2 -0
  164. package/dist/types/src/styles/primitives/index.d.ts.map +1 -0
  165. package/dist/types/src/styles/theme.d.ts +5 -0
  166. package/dist/types/src/styles/theme.d.ts.map +1 -0
  167. package/dist/types/src/tailwind.d.ts +3 -0
  168. package/dist/types/src/tailwind.d.ts.map +1 -0
  169. package/dist/types/src/types.d.ts +3 -0
  170. package/dist/types/src/types.d.ts.map +1 -0
  171. package/dist/types/src/util/hash-styles.d.ts +15 -0
  172. package/dist/types/src/util/hash-styles.d.ts.map +1 -0
  173. package/dist/types/src/util/index.d.ts +3 -0
  174. package/dist/types/src/util/index.d.ts.map +1 -0
  175. package/dist/types/src/util/mx.d.ts +2 -0
  176. package/dist/types/src/util/mx.d.ts.map +1 -0
  177. package/dist/types/src/util/withLogical.d.ts +164 -0
  178. package/dist/types/src/util/withLogical.d.ts.map +1 -0
  179. package/dist/types/tsconfig.tsbuildinfo +1 -0
  180. package/package.json +10 -6
  181. package/src/Tokens.stories.tsx +2 -2
  182. package/src/config/index.ts +1 -1
  183. package/src/config/tailwind.ts +79 -64
  184. package/src/config/tokens/colors/index.ts +8 -0
  185. package/src/config/tokens/{sememes-system.ts → colors/sememes-system.ts} +79 -70
  186. package/src/config/tokens/index.ts +2 -88
  187. package/src/config/tokens/lengths.ts +18 -10
  188. package/src/config/tokens/sizes.ts +7 -2
  189. package/src/config/tokens/tokens.ts +87 -0
  190. package/src/index.ts +4 -3
  191. package/src/styles/components/dialog.ts +27 -3
  192. package/src/styles/components/index.ts +1 -0
  193. package/src/styles/components/input.ts +2 -2
  194. package/src/styles/components/main.ts +7 -9
  195. package/src/styles/components/menu.ts +2 -10
  196. package/src/styles/components/popover.ts +3 -3
  197. package/src/styles/components/scroll-area.ts +70 -23
  198. package/src/styles/components/skeleton.ts +23 -0
  199. package/src/styles/components/tag.ts +1 -1
  200. package/src/styles/components/toolbar.ts +16 -9
  201. package/src/styles/components/tooltip.ts +2 -2
  202. package/src/styles/fragments/motion.ts +1 -1
  203. package/src/styles/fragments/size.ts +2 -2
  204. package/src/styles/index.ts +2 -1
  205. package/src/styles/layers/dialog.css +52 -21
  206. package/src/styles/layers/index.css +1 -0
  207. package/src/styles/layers/main.css +30 -7
  208. package/src/styles/layers/scrollbar.css +11 -0
  209. package/src/styles/layers/size.css +26 -21
  210. package/src/styles/layers/tokens.css +3 -1
  211. package/src/styles/layers/typography.css +22 -2
  212. package/src/styles/primitives/container.ts +33 -0
  213. package/src/styles/primitives/index.ts +5 -0
  214. package/src/styles/theme.ts +18 -5
  215. package/src/tailwind.ts +3 -1
  216. package/src/types.ts +1 -1
  217. /package/src/config/tokens/{alias-colors.ts → colors/alias-colors.ts} +0 -0
  218. /package/src/config/tokens/{physical-colors.ts → colors/physical-colors.ts} +0 -0
  219. /package/src/config/tokens/{semantic-colors.ts → colors/semantic-colors.ts} +0 -0
  220. /package/src/config/tokens/{sememes-calls.ts → colors/sememes-calls.ts} +0 -0
  221. /package/src/config/tokens/{sememes-codemirror.ts → colors/sememes-codemirror.ts} +0 -0
  222. /package/src/config/tokens/{sememes-hue.ts → colors/sememes-hue.ts} +0 -0
  223. /package/src/config/tokens/{sememes-sheet.ts → colors/sememes-sheet.ts} +0 -0
  224. /package/src/config/tokens/{types.ts → colors/types.ts} +0 -0
@@ -0,0 +1,3499 @@
1
+ // src/config/tailwind.ts
2
+ import tailwindcssContainerQueries from "@tailwindcss/container-queries";
3
+ import tailwindcssForms from "@tailwindcss/forms";
4
+ import merge from "lodash.merge";
5
+ import tailwindScrollbar from "tailwind-scrollbar";
6
+ import defaultConfig from "tailwindcss/stubs/config.full.js";
7
+ import tailwindcssLogical from "tailwindcss-logical";
8
+ import tailwindcssRadix from "tailwindcss-radix";
9
+
10
+ // src/config/tokens/sizes.ts
11
+ var cardMinInlineSize = 18;
12
+ var cardDefaultInlineSize = 20;
13
+ var cardMaxInlineSize = 22;
14
+ var cardMinBlockSize = 18;
15
+ var cardMaxBlockSize = 30;
16
+
17
+ // src/config/tokens/tokens.ts
18
+ import adapter from "@ch-ui/tailwind-tokens";
19
+
20
+ // src/config/tokens/colors/physical-colors.ts
21
+ var reflectiveRelation = {
22
+ initial: 1e3,
23
+ slope: -1e3,
24
+ method: "floor"
25
+ };
26
+ var gamuts = [
27
+ "srgb",
28
+ "p3",
29
+ "rec2020"
30
+ ];
31
+ var DEG_RAD = Math.PI / 180;
32
+ var hueKeyPoint = (hue) => {
33
+ const hueDeg = (360 * (hue / 17) + 26) % 360;
34
+ return {
35
+ keyPoint: [
36
+ 0.5,
37
+ 0.13 + 0.024 * Math.sin((hueDeg - 15) * DEG_RAD),
38
+ hueDeg
39
+ ],
40
+ lowerCp: 1,
41
+ upperCp: 1,
42
+ torsion: 0
43
+ };
44
+ };
45
+ var huePalettes = {
46
+ red: hueKeyPoint(0),
47
+ orange: hueKeyPoint(1),
48
+ amber: hueKeyPoint(2),
49
+ yellow: hueKeyPoint(3),
50
+ lime: hueKeyPoint(4),
51
+ green: hueKeyPoint(5),
52
+ emerald: hueKeyPoint(6),
53
+ teal: hueKeyPoint(7),
54
+ cyan: hueKeyPoint(8),
55
+ sky: hueKeyPoint(9),
56
+ blue: hueKeyPoint(10),
57
+ indigo: hueKeyPoint(11),
58
+ violet: hueKeyPoint(12),
59
+ purple: hueKeyPoint(13),
60
+ fuchsia: hueKeyPoint(14),
61
+ pink: hueKeyPoint(15),
62
+ rose: hueKeyPoint(16)
63
+ };
64
+ var systemPalettes = {
65
+ neutral: {
66
+ keyPoint: [
67
+ 0.5,
68
+ 1e-3,
69
+ 260
70
+ ],
71
+ lowerCp: 0,
72
+ upperCp: 0,
73
+ torsion: 0,
74
+ // Values used directly.
75
+ // TODO(burdon): Audit.
76
+ values: [
77
+ 25,
78
+ 50,
79
+ 75,
80
+ 100,
81
+ 150,
82
+ 200,
83
+ 250,
84
+ 300,
85
+ 400,
86
+ 500,
87
+ 600,
88
+ 700,
89
+ 750,
90
+ 800,
91
+ 850,
92
+ 900
93
+ ]
94
+ },
95
+ // https://oklch.com/#0.5,0.2,260,100 (#0559d2)
96
+ primary: {
97
+ keyPoint: [
98
+ 0.5,
99
+ 0.2,
100
+ 260
101
+ ],
102
+ lowerCp: 0.86,
103
+ upperCp: 1,
104
+ torsion: -30,
105
+ // Values used directly.
106
+ // TODO(burdon): Audit.
107
+ values: [
108
+ 100,
109
+ 150,
110
+ 200,
111
+ 350,
112
+ 400,
113
+ 450,
114
+ 500,
115
+ 750,
116
+ 800,
117
+ 850
118
+ ]
119
+ }
120
+ };
121
+ var physicalSeries = {
122
+ ...huePalettes,
123
+ ...systemPalettes
124
+ };
125
+ var physicalColors = {
126
+ namespace: "dx-",
127
+ definitions: {
128
+ // @ts-ignore
129
+ series: physicalSeries,
130
+ accompanyingSeries: {
131
+ reflectiveRelation
132
+ }
133
+ },
134
+ conditions: {
135
+ srgb: [
136
+ ":root, .dark"
137
+ ],
138
+ p3: [
139
+ "@media (color-gamut: p3)",
140
+ ":root, .dark"
141
+ ],
142
+ rec2020: [
143
+ "@media (color-gamut: rec2020)",
144
+ ":root, .dark"
145
+ ]
146
+ },
147
+ series: Object.entries(physicalSeries).reduce((acc, [id]) => {
148
+ acc[id] = gamuts.reduce((acc2, gamut) => {
149
+ acc2[gamut] = {
150
+ extends: id,
151
+ physicalValueRelation: {
152
+ extends: "reflectiveRelation"
153
+ }
154
+ };
155
+ return acc2;
156
+ }, {});
157
+ return acc;
158
+ }, {})
159
+ };
160
+
161
+ // src/config/tokens/colors/sememes-hue.ts
162
+ var hueSememes = [
163
+ ...Object.keys(huePalettes),
164
+ "neutral",
165
+ "primary"
166
+ ].reduce((acc, palette) => {
167
+ acc[`${palette}Cursor`] = {
168
+ light: [
169
+ palette,
170
+ 400
171
+ ],
172
+ dark: [
173
+ palette,
174
+ 300
175
+ ]
176
+ };
177
+ acc[`${palette}Text`] = {
178
+ light: [
179
+ palette,
180
+ 550
181
+ ],
182
+ dark: [
183
+ palette,
184
+ 300
185
+ ]
186
+ };
187
+ acc[`${palette}Fill`] = {
188
+ light: [
189
+ palette,
190
+ 500
191
+ ],
192
+ dark: [
193
+ palette,
194
+ 500
195
+ ]
196
+ };
197
+ acc[`${palette}Surface`] = {
198
+ light: [
199
+ palette,
200
+ 200
201
+ ],
202
+ dark: [
203
+ palette,
204
+ 700
205
+ ]
206
+ };
207
+ acc[`${palette}SurfaceText`] = {
208
+ light: [
209
+ palette,
210
+ 700
211
+ ],
212
+ dark: [
213
+ palette,
214
+ 200
215
+ ]
216
+ };
217
+ acc[`${palette}Screen`] = {
218
+ light: [
219
+ palette,
220
+ 100
221
+ ],
222
+ dark: [
223
+ palette,
224
+ 800
225
+ ]
226
+ };
227
+ return acc;
228
+ }, {});
229
+ var valenceAliasSememeStems = [
230
+ "Text",
231
+ "Surface",
232
+ "SurfaceText",
233
+ "Fill",
234
+ "Cursor"
235
+ ];
236
+ var valenceMapping = {
237
+ emerald: [
238
+ "success"
239
+ ],
240
+ cyan: [
241
+ "info"
242
+ ],
243
+ amber: [
244
+ "warning"
245
+ ],
246
+ rose: [
247
+ "error"
248
+ ],
249
+ primary: [
250
+ "current"
251
+ ],
252
+ fuchsia: [
253
+ "internal"
254
+ ]
255
+ };
256
+ var valenceAliases = valenceAliasSememeStems.reduce((acc, stem) => {
257
+ return Object.entries(valenceMapping).reduce((acc2, [hue, valences]) => {
258
+ acc2[`${hue}${stem}`] = {
259
+ root: valences.map((valence) => `${valence}${stem}`)
260
+ };
261
+ return acc2;
262
+ }, acc);
263
+ }, {});
264
+
265
+ // src/config/tokens/colors/sememes-sheet.ts
266
+ var sheetSememes = {
267
+ // NOTE: background styles for the main content area must have transparency otherwise they will mask the selection.
268
+ axisSurface: {
269
+ light: [
270
+ "neutral",
271
+ 50
272
+ ],
273
+ dark: [
274
+ "neutral",
275
+ 800
276
+ ]
277
+ },
278
+ axisText: {
279
+ light: [
280
+ "neutral",
281
+ 800
282
+ ],
283
+ dark: [
284
+ "neutral",
285
+ 200
286
+ ]
287
+ },
288
+ axisSelectedSurface: {
289
+ light: [
290
+ "neutral",
291
+ 100
292
+ ],
293
+ dark: [
294
+ "neutral",
295
+ 900
296
+ ]
297
+ },
298
+ axisSelectedText: {
299
+ light: [
300
+ "neutral",
301
+ 100
302
+ ],
303
+ dark: [
304
+ "neutral",
305
+ 900
306
+ ]
307
+ },
308
+ gridCell: {
309
+ // TODO(thure): Why override only dark?
310
+ light: [
311
+ "neutral",
312
+ "50/0"
313
+ ],
314
+ dark: [
315
+ "neutral",
316
+ 850
317
+ ]
318
+ },
319
+ gridCellSelected: {
320
+ // TODO(thure): Can this not just use `attention`?
321
+ light: [
322
+ "neutral",
323
+ 50
324
+ ],
325
+ dark: [
326
+ "neutral",
327
+ 800
328
+ ]
329
+ },
330
+ gridOverlay: {
331
+ light: [
332
+ "primary",
333
+ "500/.5"
334
+ ],
335
+ dark: [
336
+ "primary",
337
+ "500/.5"
338
+ ]
339
+ },
340
+ gridSelectionOverlay: {
341
+ light: [
342
+ "primary",
343
+ "500/.2"
344
+ ],
345
+ dark: [
346
+ "primary",
347
+ "500/.2"
348
+ ]
349
+ },
350
+ gridHighlight: {
351
+ light: [
352
+ "emerald",
353
+ "500/.5"
354
+ ],
355
+ dark: [
356
+ "emerald",
357
+ "500/.5"
358
+ ]
359
+ },
360
+ // TODO(burdon): Factor out def (in common with editor).
361
+ gridCommented: {
362
+ light: [
363
+ "green",
364
+ 200
365
+ ],
366
+ dark: [
367
+ "green",
368
+ 600
369
+ ]
370
+ },
371
+ gridCommentedActive: {
372
+ light: [
373
+ "green",
374
+ "200/.5"
375
+ ],
376
+ dark: [
377
+ "green",
378
+ "600/.5"
379
+ ]
380
+ }
381
+ };
382
+ var sheetAliases = {
383
+ activeSurface: {
384
+ root: [
385
+ "gridLine"
386
+ ]
387
+ },
388
+ accentFocusIndicator: {
389
+ root: [
390
+ "gridFocusIndicatorColor"
391
+ ]
392
+ },
393
+ neutralFocusIndicator: {
394
+ gridFocusStack: [
395
+ "gridFocusIndicatorColor"
396
+ ]
397
+ }
398
+ };
399
+
400
+ // src/config/tokens/colors/sememes-system.ts
401
+ var getMapValue = (map, key, defaultValue) => {
402
+ let value = map[key];
403
+ if (!value) {
404
+ value = defaultValue();
405
+ map[key] = value;
406
+ }
407
+ return value;
408
+ };
409
+ var applyAlpha = (sememe, alpha) => {
410
+ if (alpha >= 1) {
411
+ return sememe;
412
+ } else {
413
+ return {
414
+ light: [
415
+ sememe.light[0],
416
+ `${sememe.light[1]}/${alpha}`
417
+ ],
418
+ dark: [
419
+ sememe.dark[0],
420
+ `${sememe.dark[1]}/${alpha}`
421
+ ]
422
+ };
423
+ }
424
+ };
425
+ var DARK_ELEVATION_MIN = 855;
426
+ var DARK_ELEVATION_MAX = 731;
427
+ var DARK_CONTRAST_MIN = 750;
428
+ var DARK_CONTRAST_MAX = 665;
429
+ var LIGHT_ELEVATION_MIN = 0;
430
+ var LIGHT_ELEVATION_MAX = 0;
431
+ var LIGHT_CONTRAST_MIN = 82;
432
+ var LIGHT_CONTRAST_MAX = 24;
433
+ var ELEVATION_SCALE = 2;
434
+ var CONTRAST_SCALE = 3;
435
+ var darkElevationCadence = (depth) => Math.round(DARK_ELEVATION_MAX + (DARK_ELEVATION_MIN - DARK_ELEVATION_MAX) * ((ELEVATION_SCALE - depth) / ELEVATION_SCALE));
436
+ var darkContrastCadence = (depth) => Math.round(DARK_CONTRAST_MAX + (DARK_CONTRAST_MIN - DARK_CONTRAST_MAX) * ((ELEVATION_SCALE - depth) / ELEVATION_SCALE));
437
+ var lightElevationCadence = (depth) => Math.round(LIGHT_ELEVATION_MIN + (LIGHT_ELEVATION_MAX - LIGHT_ELEVATION_MIN) * ((CONTRAST_SCALE - depth) / CONTRAST_SCALE));
438
+ var lightContrastCadence = (depth) => Math.round(LIGHT_CONTRAST_MAX + (LIGHT_CONTRAST_MIN - LIGHT_CONTRAST_MAX) * (depth / CONTRAST_SCALE));
439
+ var elevationCadence = (lightDepth, darkDepth = lightDepth, alpha = 1) => applyAlpha({
440
+ light: [
441
+ "neutral",
442
+ lightElevationCadence(lightDepth)
443
+ ],
444
+ dark: [
445
+ "neutral",
446
+ darkElevationCadence(darkDepth)
447
+ ]
448
+ }, alpha);
449
+ var contrastCadence = (lightDepth, darkDepth = lightDepth, alpha = 1) => applyAlpha({
450
+ light: [
451
+ "neutral",
452
+ lightContrastCadence(lightDepth)
453
+ ],
454
+ dark: [
455
+ "neutral",
456
+ darkContrastCadence(darkDepth)
457
+ ]
458
+ }, alpha);
459
+ var aliasDefs = {
460
+ // Selected items, current items, other surfaces needing special contrast against baseSurface.
461
+ activeSurface: {
462
+ root: "inputSurfaceBase"
463
+ },
464
+ // Main sidebar panel.
465
+ sidebarSurface: {
466
+ root: "groupSurface"
467
+ },
468
+ // Plank header.
469
+ headerSurface: {
470
+ root: "groupSurface"
471
+ },
472
+ // Toolbars, table/sheet headers, etc.
473
+ toolbarSurface: {
474
+ root: "groupSurface"
475
+ },
476
+ // Forms, cards, etc.
477
+ cardSurface: {
478
+ root: "groupSurface"
479
+ },
480
+ // Secondary aliases.
481
+ textInputSurface: {
482
+ root: "textInputSurfaceBase",
483
+ group: "textInputSurfaceGroup",
484
+ modal: "textInputSurfaceModal"
485
+ },
486
+ inputSurface: {
487
+ root: "inputSurfaceBase",
488
+ group: "inputSurfaceGroup",
489
+ modal: "inputSurfaceModal"
490
+ },
491
+ hoverSurface: {
492
+ root: "hoverSurfaceBase",
493
+ group: "hoverSurfaceGroup",
494
+ modal: "hoverSurfaceModal"
495
+ },
496
+ // TODO(thure): Rename uses of this token to `focusSurface` and remove this alias.
497
+ attention: {
498
+ root: "focusSurface"
499
+ },
500
+ // In “master-detail” patterns, the background of the item in the list which is enumerated in the adjacent view.
501
+ // TODO(burdon): Review tokens.
502
+ currentRelated: {
503
+ root: "modalSurface"
504
+ },
505
+ // Borders and dividers.
506
+ separator: {
507
+ root: "separatorBase",
508
+ group: "separatorGroup",
509
+ modal: "separatorModal"
510
+ }
511
+ };
512
+ var systemSememes = {
513
+ //
514
+ // Elevation cadence tokens
515
+ //
516
+ baseSurface: elevationCadence(0),
517
+ groupSurface: elevationCadence(1),
518
+ modalSurface: elevationCadence(2, 1.7),
519
+ //
520
+ // Contrast cadence tokens
521
+ //
522
+ textInputSurfaceBase: contrastCadence(0, 0),
523
+ textInputSurfaceGroup: contrastCadence(0, 0.5),
524
+ textInputSurfaceModal: contrastCadence(0, 1),
525
+ inputSurfaceBase: contrastCadence(0.8, 0.33),
526
+ inputSurfaceGroup: contrastCadence(0.8, 0.66),
527
+ inputSurfaceModal: contrastCadence(0.8, 1),
528
+ hoverSurfaceBase: contrastCadence(2, 1.5),
529
+ hoverSurfaceGroup: contrastCadence(2, 2),
530
+ hoverSurfaceModal: contrastCadence(2, 2.5),
531
+ separatorBase: contrastCadence(3, 2),
532
+ separatorGroup: contrastCadence(3, 2.5),
533
+ separatorModal: contrastCadence(3, 3),
534
+ subduedSeparator: contrastCadence(3, 1),
535
+ scrollbarTrack: contrastCadence(0),
536
+ scrollbarThumbSubdued: contrastCadence(1, 1),
537
+ scrollbarThumb: contrastCadence(2.5, 2.5),
538
+ scrollbarThumbHover: contrastCadence(3.5, 3.5),
539
+ scrollbarThumbActive: contrastCadence(4.5, 4.5),
540
+ unAccent: {
541
+ light: [
542
+ "neutral",
543
+ 400
544
+ ],
545
+ dark: [
546
+ "neutral",
547
+ 400
548
+ ]
549
+ },
550
+ unAccentHover: {
551
+ light: [
552
+ "neutral",
553
+ 450
554
+ ],
555
+ dark: [
556
+ "neutral",
557
+ 450
558
+ ]
559
+ },
560
+ hoverOverlay: {
561
+ light: [
562
+ "neutral",
563
+ "450/.1"
564
+ ],
565
+ dark: [
566
+ "neutral",
567
+ "450/.1"
568
+ ]
569
+ },
570
+ //
571
+ // Special surfaces.
572
+ //
573
+ // Screen overlay for modal dialogs.
574
+ scrimSurface: applyAlpha({
575
+ light: [
576
+ "neutral",
577
+ LIGHT_CONTRAST_MAX
578
+ ],
579
+ dark: [
580
+ "neutral",
581
+ DARK_ELEVATION_MIN
582
+ ]
583
+ }, 0.65),
584
+ // High contrast for focused interactive elements. (Technically this is part of the surface cadence, but the contrast cadence is on the opposite side of the elevation cadence as this point.)
585
+ focusSurface: {
586
+ light: [
587
+ "neutral",
588
+ 0
589
+ ],
590
+ dark: [
591
+ "neutral",
592
+ 1e3
593
+ ]
594
+ },
595
+ deckSurface: {
596
+ light: [
597
+ "neutral",
598
+ 50
599
+ ],
600
+ dark: [
601
+ "neutral",
602
+ 950
603
+ ]
604
+ },
605
+ // For tooltips only; the highest elevation from the opposite theme
606
+ inverseSurface: {
607
+ light: [
608
+ "neutral",
609
+ DARK_ELEVATION_MIN
610
+ ],
611
+ dark: [
612
+ "neutral",
613
+ LIGHT_ELEVATION_MIN
614
+ ]
615
+ },
616
+ //
617
+ // Accent surfaces
618
+ //
619
+ accentSurfaceRelated: {
620
+ light: [
621
+ "primary",
622
+ "300/.1"
623
+ ],
624
+ dark: [
625
+ "primary",
626
+ "400/.1"
627
+ ]
628
+ },
629
+ accentSurfaceHover: {
630
+ light: [
631
+ "primary",
632
+ 600
633
+ ],
634
+ dark: [
635
+ "primary",
636
+ 475
637
+ ]
638
+ },
639
+ accentSurface: {
640
+ light: [
641
+ "primary",
642
+ 500
643
+ ],
644
+ dark: [
645
+ "primary",
646
+ 500
647
+ ]
648
+ },
649
+ //
650
+ // Text (text-) and other foregrounds
651
+ // TODO(thure): Establish contrast-order cadence for text.
652
+ //
653
+ baseText: {
654
+ light: [
655
+ "neutral",
656
+ 1e3
657
+ ],
658
+ dark: [
659
+ "neutral",
660
+ 50
661
+ ]
662
+ },
663
+ inverseSurfaceText: {
664
+ light: [
665
+ "neutral",
666
+ 50
667
+ ],
668
+ dark: [
669
+ "neutral",
670
+ 1e3
671
+ ]
672
+ },
673
+ description: {
674
+ light: [
675
+ "neutral",
676
+ 550
677
+ ],
678
+ dark: [
679
+ "neutral",
680
+ 350
681
+ ]
682
+ },
683
+ subdued: {
684
+ light: [
685
+ "neutral",
686
+ 700
687
+ ],
688
+ dark: [
689
+ "neutral",
690
+ 300
691
+ ]
692
+ },
693
+ placeholder: {
694
+ light: [
695
+ "neutral",
696
+ 500
697
+ ],
698
+ dark: [
699
+ "neutral",
700
+ 500
701
+ ]
702
+ },
703
+ accentText: {
704
+ light: [
705
+ "primary",
706
+ 550
707
+ ],
708
+ dark: [
709
+ "primary",
710
+ 400
711
+ ]
712
+ },
713
+ accentSurfaceText: {
714
+ light: [
715
+ "neutral",
716
+ 0
717
+ ],
718
+ dark: [
719
+ "neutral",
720
+ 0
721
+ ]
722
+ },
723
+ accentTextHover: {
724
+ light: [
725
+ "primary",
726
+ 500
727
+ ],
728
+ dark: [
729
+ "primary",
730
+ 350
731
+ ]
732
+ },
733
+ accentFocusIndicator: {
734
+ light: [
735
+ "primary",
736
+ 300
737
+ ],
738
+ dark: [
739
+ "primary",
740
+ 450
741
+ ]
742
+ },
743
+ neutralFocusIndicator: {
744
+ light: [
745
+ "neutral",
746
+ 300
747
+ ],
748
+ dark: [
749
+ "neutral",
750
+ 550
751
+ ]
752
+ }
753
+ };
754
+ var systemAliases = Object.entries(aliasDefs).reduce((aliases, [alias, values]) => {
755
+ Object.entries(values).forEach(([key, sememe]) => {
756
+ const record = getMapValue(aliases, sememe, () => ({}));
757
+ const list = getMapValue(record, key, () => []);
758
+ list.push(alias);
759
+ });
760
+ return aliases;
761
+ }, {});
762
+
763
+ // src/config/tokens/colors/alias-colors.ts
764
+ var groupAliases = [
765
+ "groupSurface",
766
+ ...systemAliases.groupSurface?.root ?? []
767
+ ];
768
+ var modalAliases = [
769
+ "modalSurface",
770
+ ...systemAliases.modalSurface?.root ?? []
771
+ ];
772
+ var aliasColors = {
773
+ conditions: {
774
+ root: [
775
+ ":root, .dark"
776
+ ],
777
+ group: [
778
+ [
779
+ ".sidebar-surface, .dark .sidebar-surface",
780
+ ...groupAliases.map((alias) => `.bg-${alias}, .dark .bg-${alias}`)
781
+ ].join(", ")
782
+ ],
783
+ modal: [
784
+ [
785
+ ".modal-surface, .dark .modal-surface",
786
+ ...modalAliases.map((alias) => `.bg-${alias}, .dark .bg-${alias}`)
787
+ ].join(", ")
788
+ ],
789
+ gridFocusStack: [
790
+ '[data-grid-focus-indicator-variant="stack"]'
791
+ ]
792
+ },
793
+ aliases: {
794
+ // TODO(thure): Aliases should be merged more elegantly, this causes overwrites.
795
+ ...sheetAliases,
796
+ ...systemAliases,
797
+ ...valenceAliases
798
+ },
799
+ namespace: "dx-"
800
+ };
801
+
802
+ // src/config/tokens/colors/sememes-calls.ts
803
+ var callsSememes = {
804
+ callActive: {
805
+ light: [
806
+ "green",
807
+ "500"
808
+ ],
809
+ dark: [
810
+ "green",
811
+ "500"
812
+ ]
813
+ },
814
+ callAlert: {
815
+ light: [
816
+ "rose",
817
+ "500"
818
+ ],
819
+ dark: [
820
+ "rose",
821
+ "500"
822
+ ]
823
+ }
824
+ };
825
+
826
+ // src/config/tokens/colors/sememes-codemirror.ts
827
+ var codemirrorSememes = {
828
+ // NOTE: background styles for the main content area must have transparency otherwise they will mask the selection.
829
+ cmCodeblock: {
830
+ light: [
831
+ "neutral",
832
+ "500/.1"
833
+ ],
834
+ dark: [
835
+ "neutral",
836
+ "500/.1"
837
+ ]
838
+ },
839
+ cmActiveLine: {
840
+ light: [
841
+ "neutral",
842
+ "200/.5"
843
+ ],
844
+ dark: [
845
+ "neutral",
846
+ "800/.5"
847
+ ]
848
+ },
849
+ cmSeparator: {
850
+ light: [
851
+ "primary",
852
+ 500
853
+ ],
854
+ dark: [
855
+ "primary",
856
+ 500
857
+ ]
858
+ },
859
+ cmCursor: {
860
+ light: [
861
+ "neutral",
862
+ 900
863
+ ],
864
+ dark: [
865
+ "neutral",
866
+ 100
867
+ ]
868
+ },
869
+ cmSelection: {
870
+ light: [
871
+ "primary",
872
+ "400/.5"
873
+ ],
874
+ dark: [
875
+ "primary",
876
+ "600/.5"
877
+ ]
878
+ },
879
+ cmFocusedSelection: {
880
+ light: [
881
+ "primary",
882
+ 400
883
+ ],
884
+ dark: [
885
+ "primary",
886
+ 600
887
+ ]
888
+ },
889
+ cmHighlight: {
890
+ light: [
891
+ "neutral",
892
+ 950
893
+ ],
894
+ dark: [
895
+ "neutral",
896
+ 50
897
+ ]
898
+ },
899
+ cmHighlightSurface: {
900
+ light: [
901
+ "sky",
902
+ 200
903
+ ],
904
+ dark: [
905
+ "cyan",
906
+ 600
907
+ ]
908
+ },
909
+ // TODO(burdon): Factor out defs in common with sheet.
910
+ cmCommentText: {
911
+ light: [
912
+ "neutral",
913
+ 50
914
+ ],
915
+ dark: [
916
+ "neutral",
917
+ 950
918
+ ]
919
+ },
920
+ cmCommentSurface: {
921
+ light: [
922
+ "amber",
923
+ 700
924
+ ],
925
+ dark: [
926
+ "amber",
927
+ 200
928
+ ]
929
+ }
930
+ };
931
+
932
+ // src/config/tokens/colors/semantic-colors.ts
933
+ var semanticColors = {
934
+ conditions: {
935
+ light: [
936
+ ":root"
937
+ ],
938
+ dark: [
939
+ ".dark"
940
+ ]
941
+ },
942
+ sememes: {
943
+ // Define each set of sememes in its own file.
944
+ ...callsSememes,
945
+ ...codemirrorSememes,
946
+ ...hueSememes,
947
+ ...sheetSememes,
948
+ ...systemSememes
949
+ },
950
+ namespace: "dx-"
951
+ };
952
+
953
+ // src/config/tokens/lengths.ts
954
+ var lengthsFacet = {
955
+ physical: {
956
+ namespace: "dx-",
957
+ conditions: {
958
+ root: [
959
+ ":root"
960
+ ]
961
+ },
962
+ series: {
963
+ line: {
964
+ root: {
965
+ unit: "px",
966
+ initial: 0,
967
+ slope: 1
968
+ }
969
+ },
970
+ // "gap"
971
+ lacuna: {
972
+ root: {
973
+ unit: "rem",
974
+ initial: 0,
975
+ slope: 0.125
976
+ }
977
+ }
978
+ }
979
+ },
980
+ semantic: {
981
+ namespace: "dx-",
982
+ conditions: {
983
+ root: [
984
+ ":root"
985
+ ]
986
+ },
987
+ sememes: {
988
+ noLine: {
989
+ root: [
990
+ "line",
991
+ 0
992
+ ]
993
+ },
994
+ hairLine: {
995
+ root: [
996
+ "line",
997
+ 1
998
+ ]
999
+ },
1000
+ thickLine: {
1001
+ root: [
1002
+ "line",
1003
+ 2
1004
+ ]
1005
+ },
1006
+ trimXs: {
1007
+ root: [
1008
+ "lacuna",
1009
+ 3
1010
+ ]
1011
+ },
1012
+ trimSm: {
1013
+ root: [
1014
+ "lacuna",
1015
+ 4
1016
+ ]
1017
+ },
1018
+ trimMd: {
1019
+ root: [
1020
+ "lacuna",
1021
+ 6
1022
+ ]
1023
+ },
1024
+ trimLg: {
1025
+ root: [
1026
+ "lacuna",
1027
+ 12
1028
+ ]
1029
+ },
1030
+ inputFine: {
1031
+ root: [
1032
+ "lacuna",
1033
+ 3
1034
+ ]
1035
+ },
1036
+ inputCoarse: {
1037
+ root: [
1038
+ "lacuna",
1039
+ 4
1040
+ ]
1041
+ }
1042
+ }
1043
+ },
1044
+ alias: {
1045
+ namespace: "dx-",
1046
+ conditions: {
1047
+ fine: [
1048
+ ":root, .density-fine"
1049
+ ],
1050
+ coarse: [
1051
+ ".density-coarse"
1052
+ ],
1053
+ flush: [
1054
+ ".density-flush"
1055
+ ],
1056
+ gridFocusStack: [
1057
+ '[data-grid-focus-indicator-variant="stack"]'
1058
+ ]
1059
+ },
1060
+ aliases: {
1061
+ noLine: {
1062
+ fine: [
1063
+ "focusOffset"
1064
+ ]
1065
+ },
1066
+ hairLine: {
1067
+ fine: [
1068
+ "modalLine",
1069
+ "landmarkLine",
1070
+ "positionedLine",
1071
+ "gridGap",
1072
+ "gridFocusIndicatorWidth"
1073
+ ]
1074
+ },
1075
+ thickLine: {
1076
+ fine: [
1077
+ "focusLine"
1078
+ ],
1079
+ gridFocusStack: [
1080
+ "gridFocusIndicatorWidth"
1081
+ ]
1082
+ },
1083
+ inputFine: {
1084
+ fine: [
1085
+ "iconButtonPadding"
1086
+ ]
1087
+ },
1088
+ inputCoarse: {
1089
+ coarse: [
1090
+ "iconButtonPadding"
1091
+ ]
1092
+ },
1093
+ trimXs: {
1094
+ fine: [
1095
+ "cardSpacingChrome",
1096
+ "labelSpacingBlock",
1097
+ "inputSpacingBlock"
1098
+ ]
1099
+ },
1100
+ trimSm: {
1101
+ fine: [
1102
+ "cardSpacingInline",
1103
+ "cardSpacingBlock",
1104
+ "cardSpacingGap"
1105
+ ]
1106
+ },
1107
+ trimMd: {
1108
+ coarse: [
1109
+ "cardSpacingInline",
1110
+ "cardSpacingBlock",
1111
+ "cardSpacingGap"
1112
+ ]
1113
+ }
1114
+ }
1115
+ }
1116
+ };
1117
+ var maxSizesFacet = {
1118
+ physical: {
1119
+ namespace: "dx-",
1120
+ conditions: {
1121
+ root: [
1122
+ ":root"
1123
+ ]
1124
+ },
1125
+ series: {
1126
+ size: {
1127
+ root: {
1128
+ unit: "rem",
1129
+ initial: 0,
1130
+ slope: 1
1131
+ }
1132
+ }
1133
+ }
1134
+ },
1135
+ semantic: {
1136
+ namespace: "dx-",
1137
+ conditions: {
1138
+ root: [
1139
+ ":root"
1140
+ ]
1141
+ },
1142
+ sememes: {
1143
+ "prose-max-width": {
1144
+ root: [
1145
+ "size",
1146
+ 50
1147
+ ]
1148
+ },
1149
+ "container-max-width": {
1150
+ root: [
1151
+ "size",
1152
+ 50
1153
+ ]
1154
+ },
1155
+ "card-default-width": {
1156
+ root: [
1157
+ "size",
1158
+ cardDefaultInlineSize
1159
+ ]
1160
+ },
1161
+ "card-min-width": {
1162
+ root: [
1163
+ "size",
1164
+ cardMinInlineSize
1165
+ ]
1166
+ },
1167
+ "card-max-width": {
1168
+ root: [
1169
+ "size",
1170
+ cardMaxInlineSize
1171
+ ]
1172
+ },
1173
+ "card-min-height": {
1174
+ root: [
1175
+ "size",
1176
+ cardMinBlockSize
1177
+ ]
1178
+ },
1179
+ "card-max-height": {
1180
+ root: [
1181
+ "size",
1182
+ cardMaxBlockSize
1183
+ ]
1184
+ }
1185
+ }
1186
+ }
1187
+ };
1188
+
1189
+ // src/config/tokens/tokens.ts
1190
+ var adapterConfig = {
1191
+ colors: {
1192
+ facet: "colors",
1193
+ disposition: "overwrite",
1194
+ tokenization: "recursive"
1195
+ },
1196
+ borderWidth: {
1197
+ facet: "lengths",
1198
+ disposition: "extend",
1199
+ tokenization: "omit-series"
1200
+ },
1201
+ ringWidth: {
1202
+ facet: "lengths",
1203
+ disposition: "extend",
1204
+ tokenization: "omit-series"
1205
+ },
1206
+ ringOffsetWidth: {
1207
+ facet: "lengths",
1208
+ disposition: "extend",
1209
+ tokenization: "omit-series"
1210
+ },
1211
+ outlineWidth: {
1212
+ facet: "lengths",
1213
+ disposition: "extend",
1214
+ tokenization: "omit-series"
1215
+ },
1216
+ spacing: {
1217
+ facet: "lengths",
1218
+ disposition: "extend",
1219
+ tokenization: "keep-series"
1220
+ }
1221
+ };
1222
+ var hues = Object.keys(huePalettes);
1223
+ var tokenSet = {
1224
+ colors: {
1225
+ physical: physicalColors,
1226
+ semantic: semanticColors,
1227
+ alias: aliasColors
1228
+ },
1229
+ lengths: lengthsFacet,
1230
+ maxSizes: maxSizesFacet
1231
+ };
1232
+ var userDefaultTokenSet = {
1233
+ colors: {
1234
+ physical: {
1235
+ definitions: {
1236
+ series: {
1237
+ neutral: physicalColors.definitions.series.neutral,
1238
+ primary: physicalColors.definitions.series.primary
1239
+ },
1240
+ accompanyingSeries: physicalColors.definitions.accompanyingSeries
1241
+ },
1242
+ conditions: physicalColors.conditions,
1243
+ series: {
1244
+ neutral: physicalColors.series.neutral,
1245
+ primary: physicalColors.series.primary
1246
+ },
1247
+ namespace: physicalColors.namespace
1248
+ },
1249
+ semantic: {
1250
+ conditions: semanticColors.conditions,
1251
+ sememes: systemSememes,
1252
+ namespace: semanticColors.namespace
1253
+ },
1254
+ alias: {
1255
+ conditions: aliasColors.conditions,
1256
+ aliases: systemAliases,
1257
+ namespace: aliasColors.namespace
1258
+ }
1259
+ }
1260
+ };
1261
+ var tokensTailwindConfig = adapter(tokenSet, adapterConfig);
1262
+
1263
+ // src/config/tailwind.ts
1264
+ var { extend: extendTokens, ...overrideTokens } = tokensTailwindConfig;
1265
+ var tailwindConfig = ({ env = "production", content = [], extensions = [] }) => ({
1266
+ darkMode: "class",
1267
+ theme: {
1268
+ // Configure fonts in theme.css and package.json.
1269
+ fontFamily: {
1270
+ body: [
1271
+ "Inter Variable",
1272
+ ...defaultConfig.theme.fontFamily.sans
1273
+ ],
1274
+ mono: [
1275
+ "JetBrains Mono Variable",
1276
+ ...defaultConfig.theme.fontFamily.mono
1277
+ ]
1278
+ },
1279
+ extend: merge({
1280
+ // Generates is-card-default-width, is-card-min-width, etc.
1281
+ spacing: {
1282
+ "prose-max-width": "var(--dx-prose-max-width)",
1283
+ "container-max-width": "var(--dx-container-max-width)",
1284
+ "card-default-width": "var(--dx-card-default-width)",
1285
+ "card-min-width": "var(--dx-card-min-width)",
1286
+ "card-max-width": "var(--dx-card-max-width)",
1287
+ "card-min-height": "var(--dx-card-min-height)",
1288
+ "card-max-height": "var(--dx-card-max-height)"
1289
+ },
1290
+ backgroundImage: {
1291
+ "gradient-radial": "radial-gradient(var(--tw-gradient-stops))",
1292
+ "gradient-conic": "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))"
1293
+ },
1294
+ borderRadius: {
1295
+ none: "0",
1296
+ sm: "0.25rem",
1297
+ DEFAULT: "0.5rem",
1298
+ md: "0.75rem",
1299
+ lg: "1rem"
1300
+ },
1301
+ screens: {
1302
+ "pointer-fine": {
1303
+ raw: "(pointer: fine)"
1304
+ },
1305
+ "hover-hover": {
1306
+ raw: "(hover: hover)"
1307
+ },
1308
+ "md": "768px",
1309
+ "lg": "1024px"
1310
+ },
1311
+ fontSize: {
1312
+ // Base size 16px
1313
+ // Scale 1.125
1314
+ "xs": [
1315
+ "0.790rem",
1316
+ {
1317
+ lineHeight: "1rem"
1318
+ }
1319
+ ],
1320
+ "sm": [
1321
+ "0.889rem",
1322
+ {
1323
+ lineHeight: "1.25rem"
1324
+ }
1325
+ ],
1326
+ "base": [
1327
+ "1rem",
1328
+ {
1329
+ lineHeight: "1.5rem"
1330
+ }
1331
+ ],
1332
+ "lg": [
1333
+ "1.125rem",
1334
+ {
1335
+ lineHeight: "1.75rem"
1336
+ }
1337
+ ],
1338
+ "xl": [
1339
+ "1.266rem",
1340
+ {
1341
+ lineHeight: "1.75rem"
1342
+ }
1343
+ ],
1344
+ "2xl": [
1345
+ "1.424rem",
1346
+ {
1347
+ lineHeight: "2rem"
1348
+ }
1349
+ ],
1350
+ "3xl": [
1351
+ "1.602rem",
1352
+ {
1353
+ lineHeight: "2.25rem"
1354
+ }
1355
+ ],
1356
+ "4xl": [
1357
+ "1.802rem",
1358
+ {
1359
+ lineHeight: "2.5rem"
1360
+ }
1361
+ ],
1362
+ "5xl": [
1363
+ "2.027rem",
1364
+ {
1365
+ lineHeight: "2.5rem"
1366
+ }
1367
+ ],
1368
+ "6xl": [
1369
+ "2.281rem",
1370
+ {
1371
+ lineHeight: "2.5rem"
1372
+ }
1373
+ ],
1374
+ "7xl": [
1375
+ "2.566rem",
1376
+ {
1377
+ lineHeight: "2.75rem"
1378
+ }
1379
+ ],
1380
+ "8xl": [
1381
+ "2.887rem",
1382
+ {
1383
+ lineHeight: "3rem"
1384
+ }
1385
+ ],
1386
+ "9xl": [
1387
+ "3.247rem",
1388
+ {
1389
+ lineHeight: "3.25rem"
1390
+ }
1391
+ ]
1392
+ },
1393
+ boxShadow: {
1394
+ "slider": "0 0 0 5px rgba(0, 0, 0, 0.3)"
1395
+ },
1396
+ transitionProperty: {
1397
+ "max-height": "max-height"
1398
+ },
1399
+ transitionTimingFunction: {
1400
+ "in-out-symmetric": "cubic-bezier(0.5, 0, 0.5, 1)"
1401
+ },
1402
+ keyframes: {
1403
+ // Fade
1404
+ "fade-in": {
1405
+ from: {
1406
+ opacity: 0
1407
+ },
1408
+ to: {
1409
+ opacity: 1
1410
+ }
1411
+ },
1412
+ "fade-out": {
1413
+ from: {
1414
+ opacity: 1
1415
+ },
1416
+ to: {
1417
+ opacity: 0
1418
+ }
1419
+ },
1420
+ // Popper chrome
1421
+ "slide-down-and-fade": {
1422
+ from: {
1423
+ opacity: 1,
1424
+ transform: "translateY(0)"
1425
+ },
1426
+ to: {
1427
+ opacity: 0,
1428
+ transform: "translateY(16px)"
1429
+ }
1430
+ },
1431
+ "slide-left-and-fade": {
1432
+ from: {
1433
+ opacity: 0,
1434
+ transform: "translateX(-16px)"
1435
+ },
1436
+ to: {
1437
+ opacity: 1,
1438
+ transform: "translateX(0)"
1439
+ }
1440
+ },
1441
+ "slide-up-and-fade": {
1442
+ from: {
1443
+ opacity: 0,
1444
+ transform: "translateY(16px)"
1445
+ },
1446
+ to: {
1447
+ opacity: 1,
1448
+ transform: "translateY(0)"
1449
+ }
1450
+ },
1451
+ "slide-right-and-fade": {
1452
+ from: {
1453
+ opacity: 0,
1454
+ transform: "translateX(16px)"
1455
+ },
1456
+ to: {
1457
+ opacity: 1,
1458
+ transform: "translateX(0)"
1459
+ }
1460
+ },
1461
+ // Toast
1462
+ "toast-hide": {
1463
+ "0%": {
1464
+ opacity: "1"
1465
+ },
1466
+ "100%": {
1467
+ opacity: "0"
1468
+ }
1469
+ },
1470
+ "toast-slide-in-right": {
1471
+ "0%": {
1472
+ transform: "translateX(calc(100% + 1rem))"
1473
+ },
1474
+ "100%": {
1475
+ transform: "translateX(0)"
1476
+ }
1477
+ },
1478
+ "toast-slide-in-bottom": {
1479
+ "0%": {
1480
+ transform: "translateY(calc(100% + 1rem))"
1481
+ },
1482
+ "100%": {
1483
+ transform: "translateY(0)"
1484
+ }
1485
+ },
1486
+ "toast-swipe-out": {
1487
+ "0%": {
1488
+ transform: "translateX(var(--radix-toast-swipe-end-x))"
1489
+ },
1490
+ "100%": {
1491
+ transform: "translateX(calc(100% + 1rem))"
1492
+ }
1493
+ },
1494
+ // Accordion
1495
+ "slide-down": {
1496
+ from: {
1497
+ height: "0px"
1498
+ },
1499
+ to: {
1500
+ height: "var(--radix-accordion-content-height)"
1501
+ }
1502
+ },
1503
+ "slide-up": {
1504
+ from: {
1505
+ height: "var(--radix-accordion-content-height)"
1506
+ },
1507
+ to: {
1508
+ height: "0px"
1509
+ }
1510
+ },
1511
+ // Shimmer
1512
+ "shimmer-loop": {
1513
+ "100%": {
1514
+ transform: "translateX(100%)"
1515
+ }
1516
+ },
1517
+ // HALO
1518
+ "halo-pulse": {
1519
+ "0%": {
1520
+ opacity: 0.3
1521
+ },
1522
+ "5%": {
1523
+ opacity: 1
1524
+ },
1525
+ "100%": {
1526
+ opacity: 0.3
1527
+ }
1528
+ },
1529
+ // Progress
1530
+ "progress-indeterminate": {
1531
+ "0%": {
1532
+ left: 0,
1533
+ width: "0%"
1534
+ },
1535
+ "25%": {
1536
+ left: "25%",
1537
+ width: "50%"
1538
+ },
1539
+ "75%": {
1540
+ left: "50%",
1541
+ width: "100%"
1542
+ },
1543
+ "100%": {
1544
+ left: "100%",
1545
+ width: "0%"
1546
+ }
1547
+ },
1548
+ // Border trail effect
1549
+ "trail": {
1550
+ to: {
1551
+ "offset-distance": "100%"
1552
+ }
1553
+ },
1554
+ "trail-offset": {
1555
+ "0%": {
1556
+ "offset-distance": "50%"
1557
+ },
1558
+ "100%": {
1559
+ "offset-distance": "150%"
1560
+ }
1561
+ }
1562
+ },
1563
+ animation: {
1564
+ // Fade
1565
+ "fade-in": "fade-in 200ms ease-out",
1566
+ "fade-out": "fade-out 400ms ease-out",
1567
+ // Popper chrome
1568
+ "slide-down-and-fade": "slide-down-and-fade 400ms cubic-bezier(0.16, 1, 0.3, 1)",
1569
+ "slide-left-and-fade": "slide-left-and-fade 400ms cubic-bezier(0.16, 1, 0.3, 1)",
1570
+ "slide-up-and-fade": "slide-up-and-fade 400ms cubic-bezier(0.16, 1, 0.3, 1)",
1571
+ "slide-right-and-fade": "slide-right-and-fade 400ms cubic-bezier(0.16, 1, 0.3, 1)",
1572
+ // Toast
1573
+ "toast-hide": "toast-hide 100ms ease-in forwards",
1574
+ "toast-slide-in-right": "toast-slide-in-right 150ms cubic-bezier(0.16, 1, 0.3, 1)",
1575
+ "toast-slide-in-bottom": "toast-slide-in-bottom 150ms cubic-bezier(0.16, 1, 0.3, 1)",
1576
+ "toast-swipe-out": "toast-swipe-out 100ms ease-out forwards",
1577
+ // Accordion
1578
+ "slide-down": "slide-down 300ms cubic-bezier(0.87, 0, 0.13, 1)",
1579
+ "slide-up": "slide-up 300ms cubic-bezier(0.87, 0, 0.13, 1)",
1580
+ // Border trail effect
1581
+ "trail": "trail 6s linear infinite",
1582
+ "trail-offset": "trail-offset 6s linear infinite",
1583
+ // Progress effects
1584
+ "spin": "spin 1.5s linear infinite",
1585
+ "spin-slow": "spin 3s linear infinite",
1586
+ "shimmer": "shimmer-loop 2s infinite",
1587
+ "halo-pulse": "halo-pulse 2s ease-out infinite",
1588
+ "progress-indeterminate": "progress-indeterminate 2s ease-out infinite",
1589
+ "progress-linear": "progress-linear 2s ease-out infinite"
1590
+ }
1591
+ }, extendTokens, ...extensions),
1592
+ ...overrideTokens,
1593
+ colors: {
1594
+ ...overrideTokens.colors,
1595
+ inherit: "inherit",
1596
+ current: "currentColor",
1597
+ transparent: "transparent",
1598
+ black: "black",
1599
+ white: "white"
1600
+ }
1601
+ },
1602
+ plugins: [
1603
+ tailwindcssContainerQueries,
1604
+ tailwindcssForms,
1605
+ tailwindcssLogical,
1606
+ tailwindcssRadix(),
1607
+ // https://adoxography.github.io/tailwind-scrollbar/utilities
1608
+ tailwindScrollbar({
1609
+ nocompatible: true,
1610
+ preferredStrategy: "pseudoelements"
1611
+ })
1612
+ ],
1613
+ ...env === "development" && {
1614
+ mode: "jit"
1615
+ },
1616
+ content,
1617
+ future: {
1618
+ hoverOnlyWhenSupported: true
1619
+ }
1620
+ });
1621
+
1622
+ // src/util/hash-styles.ts
1623
+ var neutralColor = {
1624
+ hue: "neutral",
1625
+ text: "text-neutralFill",
1626
+ icon: "text-neutralSurfaceText",
1627
+ bg: "bg-neutralFill",
1628
+ surface: "bg-neutralSurface",
1629
+ border: "border-neutralFill"
1630
+ };
1631
+ var styles = [
1632
+ {
1633
+ hue: "orange",
1634
+ text: "text-orangeFill",
1635
+ icon: "text-orangeSurfaceText",
1636
+ bg: "bg-orangeFill",
1637
+ surface: "bg-orangeSurface",
1638
+ border: "border-orangeFill"
1639
+ },
1640
+ {
1641
+ hue: "amber",
1642
+ text: "text-amberFill",
1643
+ icon: "text-amberSurfaceText",
1644
+ bg: "bg-amberFill",
1645
+ surface: "bg-amberSurface",
1646
+ border: "border-amberFill"
1647
+ },
1648
+ {
1649
+ hue: "yellow",
1650
+ text: "text-yellowFill",
1651
+ icon: "text-yellowSurfaceText",
1652
+ bg: "bg-yellowFill",
1653
+ surface: "bg-yellowSurface",
1654
+ border: "border-yellowFill"
1655
+ },
1656
+ {
1657
+ hue: "lime",
1658
+ text: "text-limeFill",
1659
+ icon: "text-limeSurfaceText",
1660
+ bg: "bg-limeFill",
1661
+ surface: "bg-limeSurface",
1662
+ border: "border-limeFill"
1663
+ },
1664
+ {
1665
+ hue: "green",
1666
+ text: "text-greenFill",
1667
+ icon: "text-greenSurfaceText",
1668
+ bg: "bg-greenFill",
1669
+ surface: "bg-greenSurface",
1670
+ border: "border-greenFill"
1671
+ },
1672
+ {
1673
+ hue: "emerald",
1674
+ text: "text-emeraldFill",
1675
+ icon: "text-emeraldSurfaceText",
1676
+ bg: "bg-emeraldFill",
1677
+ surface: "bg-emeraldSurface",
1678
+ border: "border-emeraldFill"
1679
+ },
1680
+ {
1681
+ hue: "teal",
1682
+ text: "text-tealFill",
1683
+ icon: "text-tealSurfaceText",
1684
+ bg: "bg-tealFill",
1685
+ surface: "bg-tealSurface",
1686
+ border: "border-tealFill"
1687
+ },
1688
+ {
1689
+ hue: "cyan",
1690
+ text: "text-cyanFill",
1691
+ icon: "text-cyanSurfaceText",
1692
+ bg: "bg-cyanFill",
1693
+ surface: "bg-cyanSurface",
1694
+ border: "border-cyanFill"
1695
+ },
1696
+ {
1697
+ hue: "sky",
1698
+ text: "text-skyFill",
1699
+ icon: "text-skySurfaceText",
1700
+ bg: "bg-skyFill",
1701
+ surface: "bg-skySurface",
1702
+ border: "border-skyFill"
1703
+ },
1704
+ {
1705
+ hue: "indigo",
1706
+ text: "text-indigoFill",
1707
+ icon: "text-indigoSurfaceText",
1708
+ bg: "bg-indigoFill",
1709
+ surface: "bg-indigoSurface",
1710
+ border: "border-indigoFill"
1711
+ },
1712
+ {
1713
+ hue: "violet",
1714
+ text: "text-violetFill",
1715
+ icon: "text-violetSurfaceText",
1716
+ bg: "bg-violetFill",
1717
+ surface: "bg-violetSurface",
1718
+ border: "border-violetFill"
1719
+ },
1720
+ {
1721
+ hue: "purple",
1722
+ text: "text-purpleFill",
1723
+ icon: "text-purpleSurfaceText",
1724
+ bg: "bg-purpleFill",
1725
+ surface: "bg-purpleSurface",
1726
+ border: "border-purpleFill"
1727
+ },
1728
+ {
1729
+ hue: "fuchsia",
1730
+ text: "text-fuchsiaFill",
1731
+ icon: "text-fuchsiaSurfaceText",
1732
+ bg: "bg-fuchsiaFill",
1733
+ surface: "bg-fuchsiaSurface",
1734
+ border: "border-fuchsiaFill"
1735
+ },
1736
+ {
1737
+ hue: "rose",
1738
+ text: "text-roseFill",
1739
+ icon: "text-roseSurfaceText",
1740
+ bg: "bg-roseFill",
1741
+ surface: "bg-roseSurface",
1742
+ border: "border-roseFill"
1743
+ },
1744
+ {
1745
+ hue: "pink",
1746
+ text: "text-pinkFill",
1747
+ icon: "text-pinkSurfaceText",
1748
+ bg: "bg-pinkFill",
1749
+ surface: "bg-pinkSurface",
1750
+ border: "border-pinkFill"
1751
+ }
1752
+ ];
1753
+ var getStyles = (hue) => {
1754
+ return styles.find((color) => color.hue === hue) || neutralColor;
1755
+ };
1756
+ var getHashHue = (id) => {
1757
+ return id ? styles[getHash(id) % styles.length].hue : "neutral";
1758
+ };
1759
+ var getHashStyles = (id) => {
1760
+ const hue = getHashHue(id);
1761
+ return getStyles(hue);
1762
+ };
1763
+ var getHash = (id) => id.split("").reduce((acc, char) => acc + char.charCodeAt(0), 0);
1764
+
1765
+ // src/util/mx.ts
1766
+ import { extendTailwindMerge, validators as validators2 } from "tailwind-merge";
1767
+
1768
+ // src/util/withLogical.ts
1769
+ import { mergeConfigs, validators } from "tailwind-merge";
1770
+ var getLength = () => [
1771
+ validators.isLength,
1772
+ validators.isArbitraryLength
1773
+ ];
1774
+ var getLengthWithAuto = () => [
1775
+ "auto",
1776
+ validators.isLength,
1777
+ validators.isArbitraryLength
1778
+ ];
1779
+ var getLengthWithEmpty = () => [
1780
+ "",
1781
+ validators.isLength,
1782
+ validators.isArbitraryLength
1783
+ ];
1784
+ var getAny = () => [
1785
+ validators.isAny
1786
+ ];
1787
+ var getRounded = () => [
1788
+ "none",
1789
+ "",
1790
+ validators.isTshirtSize,
1791
+ "full",
1792
+ validators.isArbitraryLength
1793
+ ];
1794
+ var classGroupsConfig = {
1795
+ float: [
1796
+ {
1797
+ float: [
1798
+ "start",
1799
+ "end"
1800
+ ]
1801
+ }
1802
+ ],
1803
+ clear: [
1804
+ {
1805
+ clear: [
1806
+ "start",
1807
+ "end"
1808
+ ]
1809
+ }
1810
+ ],
1811
+ resize: [
1812
+ {
1813
+ resize: [
1814
+ "block ",
1815
+ "inline"
1816
+ ]
1817
+ }
1818
+ ],
1819
+ "text-alignment": [
1820
+ {
1821
+ text: [
1822
+ "start",
1823
+ "end"
1824
+ ]
1825
+ }
1826
+ ],
1827
+ "logical.overscroll-b": [
1828
+ {
1829
+ "overscroll-b": [
1830
+ "auto ",
1831
+ "contain",
1832
+ "auto"
1833
+ ]
1834
+ }
1835
+ ],
1836
+ "logical.overscroll-i": [
1837
+ {
1838
+ "overscroll-b": [
1839
+ "auto ",
1840
+ "contain",
1841
+ "auto"
1842
+ ]
1843
+ }
1844
+ ],
1845
+ "logical.bs": [
1846
+ {
1847
+ bs: getLength()
1848
+ }
1849
+ ],
1850
+ "logical.min-bs": [
1851
+ {
1852
+ "min-bs": getAny()
1853
+ }
1854
+ ],
1855
+ "logical.max-bs": [
1856
+ {
1857
+ "max-bs": getAny()
1858
+ }
1859
+ ],
1860
+ "logical.is": [
1861
+ {
1862
+ is: getLength()
1863
+ }
1864
+ ],
1865
+ "logical.min-is": [
1866
+ {
1867
+ "min-is": getAny()
1868
+ }
1869
+ ],
1870
+ "logical.max-is": [
1871
+ {
1872
+ "max-is": getAny()
1873
+ }
1874
+ ],
1875
+ "logical.mlb": [
1876
+ {
1877
+ mlb: getAny()
1878
+ }
1879
+ ],
1880
+ "logical.mli": [
1881
+ {
1882
+ mli: getAny()
1883
+ }
1884
+ ],
1885
+ "logical.mbs": [
1886
+ {
1887
+ mbs: getAny()
1888
+ }
1889
+ ],
1890
+ "logical.mbe": [
1891
+ {
1892
+ mbe: getAny()
1893
+ }
1894
+ ],
1895
+ "logical.mis": [
1896
+ {
1897
+ mis: getAny()
1898
+ }
1899
+ ],
1900
+ "logical.mie": [
1901
+ {
1902
+ mie: getAny()
1903
+ }
1904
+ ],
1905
+ "logical.plb": [
1906
+ {
1907
+ plb: getAny()
1908
+ }
1909
+ ],
1910
+ "logical.pli": [
1911
+ {
1912
+ pli: getAny()
1913
+ }
1914
+ ],
1915
+ "logical.pbs": [
1916
+ {
1917
+ pbs: getAny()
1918
+ }
1919
+ ],
1920
+ "logical.pbe": [
1921
+ {
1922
+ pbe: getAny()
1923
+ }
1924
+ ],
1925
+ "logical.pis": [
1926
+ {
1927
+ pis: getAny()
1928
+ }
1929
+ ],
1930
+ "logical.pie": [
1931
+ {
1932
+ pie: getAny()
1933
+ }
1934
+ ],
1935
+ "logical.space-b": [
1936
+ {
1937
+ "space-b": getLength()
1938
+ }
1939
+ ],
1940
+ "logical.space-i": [
1941
+ {
1942
+ "space-i": getLength()
1943
+ }
1944
+ ],
1945
+ "logical.inset-block": [
1946
+ {
1947
+ "inset-block": getLengthWithAuto()
1948
+ }
1949
+ ],
1950
+ "logical.inset-inline": [
1951
+ {
1952
+ "inset-inline": getLengthWithAuto()
1953
+ }
1954
+ ],
1955
+ "logical.block-start": [
1956
+ {
1957
+ "block-start": getLengthWithAuto()
1958
+ }
1959
+ ],
1960
+ "logical.block-end": [
1961
+ {
1962
+ "block-end": getLengthWithAuto()
1963
+ }
1964
+ ],
1965
+ "logical.inline-start": [
1966
+ {
1967
+ "inline-start": getLengthWithAuto()
1968
+ }
1969
+ ],
1970
+ "logical.inline-end": [
1971
+ {
1972
+ "inline-end": getLengthWithAuto()
1973
+ }
1974
+ ],
1975
+ "logical.border-li": [
1976
+ {
1977
+ "border-li": getLengthWithEmpty()
1978
+ }
1979
+ ],
1980
+ "logical.border-lb": [
1981
+ {
1982
+ "border-lb": getLengthWithEmpty()
1983
+ }
1984
+ ],
1985
+ "logical.border-bs": [
1986
+ {
1987
+ "border-bs": getLengthWithEmpty()
1988
+ }
1989
+ ],
1990
+ "logical.border-be": [
1991
+ {
1992
+ "border-be": getLengthWithEmpty()
1993
+ }
1994
+ ],
1995
+ "logical.border-is": [
1996
+ {
1997
+ "border-is": getLengthWithEmpty()
1998
+ }
1999
+ ],
2000
+ "logical.border-ie": [
2001
+ {
2002
+ "border-ie": getLengthWithEmpty()
2003
+ }
2004
+ ],
2005
+ "logical.border-color-bs": [
2006
+ {
2007
+ "border-bs": getAny()
2008
+ }
2009
+ ],
2010
+ "logical.border-color-be": [
2011
+ {
2012
+ "border-be": getAny()
2013
+ }
2014
+ ],
2015
+ "logical.border-color-is": [
2016
+ {
2017
+ "border-is": getAny()
2018
+ }
2019
+ ],
2020
+ "logical.border-color-ie": [
2021
+ {
2022
+ "border-ie": getAny()
2023
+ }
2024
+ ],
2025
+ "logical.rounded-bs": [
2026
+ {
2027
+ "rounded-bs": getRounded()
2028
+ }
2029
+ ],
2030
+ "logical.rounded-be": [
2031
+ {
2032
+ "rounded-be": getRounded()
2033
+ }
2034
+ ],
2035
+ "logical.rounded-is": [
2036
+ {
2037
+ "rounded-is": getRounded()
2038
+ }
2039
+ ],
2040
+ "logical.rounded-ie": [
2041
+ {
2042
+ "rounded-ie": getRounded()
2043
+ }
2044
+ ],
2045
+ "logical.rounded-ss": [
2046
+ {
2047
+ "rounded-ss": getRounded()
2048
+ }
2049
+ ],
2050
+ "logical.rounded-se": [
2051
+ {
2052
+ "rounded-se": getRounded()
2053
+ }
2054
+ ],
2055
+ "logical.rounded-es": [
2056
+ {
2057
+ "rounded-es": getRounded()
2058
+ }
2059
+ ],
2060
+ "logical.rounded-ee": [
2061
+ {
2062
+ "rounded-ee": getRounded()
2063
+ }
2064
+ ],
2065
+ "logical.divide-b": [
2066
+ {
2067
+ "divide-b": getLengthWithEmpty()
2068
+ }
2069
+ ],
2070
+ "logical.divide-i": [
2071
+ {
2072
+ "divide-i": getLengthWithEmpty()
2073
+ }
2074
+ ]
2075
+ };
2076
+ var withLogical = (prevConfig) => {
2077
+ return mergeConfigs(prevConfig, {
2078
+ extend: {
2079
+ classGroups: classGroupsConfig,
2080
+ conflictingClassGroups: {
2081
+ "inset-block": [
2082
+ "logical.block-start",
2083
+ "logical.block-end"
2084
+ ],
2085
+ "inset-inline": [
2086
+ "logical.inline-start",
2087
+ "logical.inline-end"
2088
+ ],
2089
+ p: [
2090
+ "logical.plb",
2091
+ "logical.pli",
2092
+ "logical.pbs",
2093
+ "logical.pbe",
2094
+ "logical.pis",
2095
+ "logical.pie"
2096
+ ],
2097
+ pli: [
2098
+ "logical.pis",
2099
+ "logical.pie"
2100
+ ],
2101
+ plb: [
2102
+ "logical.pbs",
2103
+ "logical.pbe"
2104
+ ],
2105
+ m: [
2106
+ "logical.mlb",
2107
+ "logical.mli",
2108
+ "logical.mbs",
2109
+ "logical.mbe",
2110
+ "logical.mis",
2111
+ "logical.mie"
2112
+ ],
2113
+ mli: [
2114
+ "logical.mis",
2115
+ "logical.mie"
2116
+ ],
2117
+ mlb: [
2118
+ "logical.mbs",
2119
+ "logical.mbe"
2120
+ ],
2121
+ overscroll: [
2122
+ "overscroll-i",
2123
+ "overscroll-b"
2124
+ ],
2125
+ rounded: [
2126
+ "logical.rounded-bs",
2127
+ "logical.rounded-be",
2128
+ "logical.rounded-is",
2129
+ "logical.rounded-ie",
2130
+ "logical.rounded-ss",
2131
+ "logical.rounded-se",
2132
+ "logical.rounded-es",
2133
+ "logical.rounded-ee"
2134
+ ],
2135
+ "logical.rounded-bs": [
2136
+ "logical.rounded-ss",
2137
+ "logical.rounded-se"
2138
+ ],
2139
+ "logical.rounded-be": [
2140
+ "logical.rounded-es",
2141
+ "logical.rounded-ee"
2142
+ ],
2143
+ "logical.rounded-is": [
2144
+ "logical.rounded-ss",
2145
+ "logical.rounded-es"
2146
+ ],
2147
+ "logical.rounded-ie": [
2148
+ "logical.rounded-ee",
2149
+ "logical.rounded-se"
2150
+ ],
2151
+ "logical.border-li": [
2152
+ "logical.border-is",
2153
+ "logical.border-ie"
2154
+ ],
2155
+ "logical.border-lb": [
2156
+ "logical.border-bs",
2157
+ "logical.border-be"
2158
+ ],
2159
+ "border-color": [
2160
+ "logical.border-color-bs",
2161
+ "logical.border-color-be",
2162
+ "logical.border-color-is",
2163
+ "logical.border-color-ie"
2164
+ ],
2165
+ border: [
2166
+ "logical.border-bs",
2167
+ "logical.border-be",
2168
+ "logical.border-is",
2169
+ "logical.border-ie"
2170
+ ]
2171
+ }
2172
+ }
2173
+ });
2174
+ };
2175
+
2176
+ // src/util/mx.ts
2177
+ var mx = extendTailwindMerge({
2178
+ extend: {
2179
+ classGroups: {
2180
+ "font-family": [
2181
+ "font-body",
2182
+ "font-mono"
2183
+ ],
2184
+ "font-weight": [
2185
+ // App weights
2186
+ "font-thin",
2187
+ "font-extralight",
2188
+ "font-light",
2189
+ "font-normal",
2190
+ "font-medium",
2191
+ "font-semibold",
2192
+ "font-bold",
2193
+ "font-extrabold",
2194
+ "font-black",
2195
+ // Arbitrary numbers
2196
+ validators2.isArbitraryNumber
2197
+ ],
2198
+ density: [
2199
+ "density-fine",
2200
+ "density-coarse"
2201
+ ],
2202
+ "dx-focus-ring": [
2203
+ "dx-focus-ring",
2204
+ "dx-focus-ring-inset",
2205
+ "dx-focus-ring-always",
2206
+ "dx-focus-ring-inset-always",
2207
+ "dx-focus-ring-group",
2208
+ "dx-focus-ring-group-x",
2209
+ "dx-focus-ring-group-y",
2210
+ "dx-focus-ring-group-always",
2211
+ "dx-focus-ring-group-x-always",
2212
+ "dx-focus-ring-group-y-always",
2213
+ "dx-focus-ring-inset-over-all",
2214
+ "dx-focus-ring-inset-over-all-always",
2215
+ "dx-focus-ring-main",
2216
+ "dx-focus-ring-main-always"
2217
+ ]
2218
+ }
2219
+ }
2220
+ }, withLogical);
2221
+
2222
+ // src/styles/components/anchored-overflow.ts
2223
+ var anchoredOverflowRoot = (_props, ...etc) => mx("overflow-anchored overflow-auto", ...etc);
2224
+ var anchoredOverflowAnchor = (_props, ...etc) => mx("overflow-anchor is-px bs-px", ...etc);
2225
+ var anchoredOverflowTheme = {
2226
+ root: anchoredOverflowRoot,
2227
+ anchor: anchoredOverflowAnchor
2228
+ };
2229
+
2230
+ // src/styles/fragments/density.ts
2231
+ var coarseBlockSize = "min-bs-[2.5rem]";
2232
+ var coarseTextPadding = "pli-3";
2233
+ var coarseButtonPadding = "pli-4";
2234
+ var coarseDimensions = `${coarseBlockSize} ${coarseTextPadding}`;
2235
+ var coarseButtonDimensions = `${coarseBlockSize} ${coarseButtonPadding}`;
2236
+ var fineBlockSize = "min-bs-[2.5rem] pointer-fine:min-bs-[2rem]";
2237
+ var fineTextPadding = "pli-2";
2238
+ var fineButtonPadding = "pli-2.5";
2239
+ var fineDimensions = `${fineBlockSize} ${fineTextPadding}`;
2240
+ var fineButtonDimensions = `${fineBlockSize} ${fineButtonPadding}`;
2241
+ var densityBlockSize = (density = "coarse") => density === "fine" ? fineBlockSize : coarseBlockSize;
2242
+
2243
+ // src/styles/fragments/disabled.ts
2244
+ var staticDisabled = "opacity-40 cursor-not-allowed shadow-none";
2245
+ var dataDisabled = "data-[disabled]:opacity-40 data-[disabled]:cursor-not-allowed";
2246
+
2247
+ // src/styles/fragments/dimension.ts
2248
+ var textBlockWidth = "is-full mli-auto max-is-[--text-content]";
2249
+
2250
+ // src/styles/fragments/elevation.ts
2251
+ var contentShadow = (_) => [
2252
+ "shadow-none"
2253
+ ];
2254
+ var surfaceShadow = ({ elevation }) => [
2255
+ elevation === "positioned" ? "shadow" : elevation === "dialog" || elevation === "toast" ? "shadow-md" : "shadow-none"
2256
+ ];
2257
+ var surfaceZIndex = ({ level, elevation }) => {
2258
+ switch (level) {
2259
+ case "tooltip":
2260
+ return elevation === "dialog" ? [
2261
+ "z-[53]"
2262
+ ] : elevation === "toast" ? [
2263
+ "z-[43]"
2264
+ ] : [
2265
+ "z-30"
2266
+ ];
2267
+ case "menu":
2268
+ return elevation === "dialog" ? [
2269
+ "z-[52]"
2270
+ ] : elevation === "toast" ? [
2271
+ "z-[42]"
2272
+ ] : [
2273
+ "z-20"
2274
+ ];
2275
+ default:
2276
+ return elevation === "dialog" ? [
2277
+ "z-[51]"
2278
+ ] : elevation === "toast" ? [
2279
+ "z-[41]"
2280
+ ] : [
2281
+ "z-[1]"
2282
+ ];
2283
+ }
2284
+ };
2285
+
2286
+ // src/styles/fragments/focus.ts
2287
+ var focusRing = "dx-focus-ring";
2288
+ var dropRing = "ring-1 ring-offset-0 ring-primary-350 ring-offset-white dark:ring-primary-450 dark:ring-offset-black";
2289
+ var dropRingInner = "before:z-[1] before:absolute before:inset-0 before:ring-1 before:ring-inset before:ring-primary-350 before:dark:ring-primary-450";
2290
+ var subduedFocus = "focus:outline-none focus-visible:outline-none focus:ring-0 ring-0 focus:border-0 border-0";
2291
+ var staticFocusRing = "ring-2 ring-offset-0 ring-primary-350 ring-offset-white dark:ring-primary-450 dark:ring-offset-black";
2292
+
2293
+ // src/styles/fragments/group.ts
2294
+ var group = (props) => [
2295
+ props.elevation === "base" ? "bg-transparent border border-separator" : "bg-modalSurface",
2296
+ surfaceShadow(props)
2297
+ ];
2298
+
2299
+ // src/styles/fragments/hover.ts
2300
+ var hoverColors = "transition-colors duration-100 linear hover:bg-hoverSurface";
2301
+ var ghostHover = "hover:bg-hoverSurface";
2302
+ var ghostFocusWithin = "focus-within:bg-hoverSurface";
2303
+ var subtleHover = "hover:bg-hoverOverlay";
2304
+ var hoverableControls = "[--controls-opacity:1] hover-hover:[--controls-opacity:0] hover-hover:hover:[--controls-opacity:1]";
2305
+ var groupHoverControlItemWithTransition = "transition-opacity duration-200 opacity-0 group-hover:opacity-100";
2306
+ var hoverableFocusedKeyboardControls = "focus-visible:[--controls-opacity:1]";
2307
+ var hoverableFocusedWithinControls = "focus-within:[--controls-opacity:1]";
2308
+ var hoverableFocusedControls = "focus:[--controls-opacity:1]";
2309
+ var hoverableOpenControlItem = "hover-hover:aria-[expanded=true]:[--controls-opacity:1]";
2310
+ var hoverableControlItem = "opacity-[--controls-opacity]";
2311
+ var hoverableControlItemTransition = "transition-opacity duration-200";
2312
+ var staticHoverableControls = "hover-hover:[--controls-opacity:1]";
2313
+
2314
+ // src/styles/fragments/layout.ts
2315
+ var bounceLayout = "fixed inset-0 z-0 overflow-auto overscroll-auto";
2316
+ var fixedInsetFlexLayout = "flex flex-col fixed inset-0 overflow-hidden overscroll-none";
2317
+
2318
+ // src/styles/fragments/motion.ts
2319
+ var popperMotion = "will-change-[opacity,transform] data-[side=top]:animate-slide-down-and-fade data-[side=right]:animate-slide-left-and-fade data-[side=bottom]:animate-slide-up-and-fade data-[side=left]:animate-slide-right-and-fade";
2320
+
2321
+ // src/styles/fragments/ornament.ts
2322
+ var separatorBorderColor = "border-separator";
2323
+ var subduedSeparatorBorderColor = "border-subduedSeparator";
2324
+ var inlineSeparator = "self-stretch border-ie mli-1";
2325
+ var blockSeparator = "self-stretch border-be mlb-1";
2326
+
2327
+ // src/styles/fragments/selected.ts
2328
+ var ghostSelectedCurrent = [
2329
+ ghostHover,
2330
+ "aria-[current]:bg-inputSurface hover:aria-[current]:bg-hoverSurface",
2331
+ "aria-selected:bg-primary-100 dark:aria-selected:bg-primary-850 hover:aria-selected:bg-primary-150 hover:dark:aria-selected:bg-primary-800",
2332
+ "aria-[current]:aria-selected:bg-primary-200 dark:aria-[current]:aria-selected:bg-primary-750 hover:aria-[current]:aria-selected:bg-primary-200 hover:dark:aria-[current]:aria-selected:bg-primary-750"
2333
+ ];
2334
+ var ghostHighlighted = "data-[highlighted]:bg-primary-100 dark:data-[highlighted]:bg-primary-600 hover:data-[highlighted]:bg-primary-150 hover:dark:data-[highlighted]:bg-primary-500";
2335
+ var ghostSelectedTrackingInterFromNormal = "tracking-[0.0092em]";
2336
+ var ghostSelected = "aria-selected:bg-baseSurface aria-selected:text-accentText hover:aria-selected:text-accentTextHover aria-selected:font-semibold aria-selected:tracking-normal transition-[color,font-variation-settings,letter-spacing]";
2337
+ var ghostSelectedContainerMd = "@md:aria-selected:bg-baseSurface @md:aria-selected:text-accentText @md:hover:aria-selected:text-accentTextHover @md:aria-selected:font-semibold @md:aria-selected:tracking-normal @md:transition-[color,font-variation-settings,letter-spacing]";
2338
+ var staticGhostSelectedCurrent = ({ current, selected }) => [
2339
+ current && selected ? "bg-primary-200 dark:bg-primary-750 hover:bg-primary-200 hover:dark:bg-primary-750" : current ? "bg-inputSurface hover:bg-hoverSurface" : selected ? "bg-primary-100 dark:bg-primary-850 hover:bg-primary-150 hover:dark:bg-primary-800" : ghostHover
2340
+ ];
2341
+ var staticGhostSelected = ({ selected }) => selected ? [
2342
+ "bg-primary-200 dark:bg-primary-750"
2343
+ ] : [];
2344
+
2345
+ // src/styles/fragments/shimmer.ts
2346
+ var shimmer = "relative before:absolute before:inset-0 before:-translate-x-full before:animate-shimmer before:bg-gradient-to-r before:from-transparent before:via-neutral-100/10 before:to-transparent isolate overflow-hidden";
2347
+ var strongShimmer = "relative before:absolute before:inset-0 before:-translate-x-full before:animate-shimmer before:bg-gradient-to-r before:from-transparent before:via-primary-100/80 before:to-transparent isolate overflow-hidden";
2348
+
2349
+ // src/styles/fragments/surface.ts
2350
+ var baseSurface = "base-surface";
2351
+ var sidebarSurface = "sidebar-surface backdrop-blur-md dark:backdrop-blur-lg";
2352
+ var sidebarBorder = "border-separator";
2353
+ var activeSurface = "base-surface";
2354
+ var groupBorder = "border-separator";
2355
+ var modalSurface = "modal-surface backdrop-blur-md";
2356
+ var attentionSurface = "attention-surface";
2357
+ var accentSurface = "bg-accentSurface text-accentSurfaceText";
2358
+
2359
+ // src/styles/fragments/size.ts
2360
+ var sizeWidthMap = /* @__PURE__ */ new Map([
2361
+ [
2362
+ 0,
2363
+ "is-0"
2364
+ ],
2365
+ [
2366
+ "px",
2367
+ "is-px"
2368
+ ],
2369
+ [
2370
+ 0.5,
2371
+ "is-0.5"
2372
+ ],
2373
+ [
2374
+ 1,
2375
+ "is-1"
2376
+ ],
2377
+ [
2378
+ 1.5,
2379
+ "is-1.5"
2380
+ ],
2381
+ [
2382
+ 2,
2383
+ "is-2"
2384
+ ],
2385
+ [
2386
+ 2.5,
2387
+ "is-2.5"
2388
+ ],
2389
+ [
2390
+ 3,
2391
+ "is-3"
2392
+ ],
2393
+ [
2394
+ 3.5,
2395
+ "is-3.5"
2396
+ ],
2397
+ [
2398
+ 4,
2399
+ "is-4"
2400
+ ],
2401
+ [
2402
+ 5,
2403
+ "is-5"
2404
+ ],
2405
+ [
2406
+ 6,
2407
+ "is-6"
2408
+ ],
2409
+ [
2410
+ 7,
2411
+ "is-7"
2412
+ ],
2413
+ [
2414
+ 8,
2415
+ "is-8"
2416
+ ],
2417
+ [
2418
+ 9,
2419
+ "is-9"
2420
+ ],
2421
+ [
2422
+ 10,
2423
+ "is-10"
2424
+ ],
2425
+ [
2426
+ 11,
2427
+ "is-11"
2428
+ ],
2429
+ [
2430
+ 12,
2431
+ "is-12"
2432
+ ],
2433
+ [
2434
+ 14,
2435
+ "is-14"
2436
+ ],
2437
+ [
2438
+ 16,
2439
+ "is-16"
2440
+ ],
2441
+ [
2442
+ 20,
2443
+ "is-20"
2444
+ ],
2445
+ [
2446
+ 24,
2447
+ "is-24"
2448
+ ],
2449
+ [
2450
+ 28,
2451
+ "is-28"
2452
+ ],
2453
+ [
2454
+ 32,
2455
+ "is-32"
2456
+ ],
2457
+ [
2458
+ 36,
2459
+ "is-36"
2460
+ ],
2461
+ [
2462
+ 40,
2463
+ "is-40"
2464
+ ],
2465
+ [
2466
+ 44,
2467
+ "is-44"
2468
+ ],
2469
+ [
2470
+ 48,
2471
+ "is-48"
2472
+ ],
2473
+ [
2474
+ 52,
2475
+ "is-52"
2476
+ ],
2477
+ [
2478
+ 56,
2479
+ "is-56"
2480
+ ],
2481
+ [
2482
+ 60,
2483
+ "is-60"
2484
+ ],
2485
+ [
2486
+ 64,
2487
+ "is-64"
2488
+ ],
2489
+ [
2490
+ 72,
2491
+ "is-72"
2492
+ ],
2493
+ [
2494
+ 80,
2495
+ "is-80"
2496
+ ],
2497
+ [
2498
+ 96,
2499
+ "is-96"
2500
+ ]
2501
+ ]);
2502
+ var sizeHeightMap = /* @__PURE__ */ new Map([
2503
+ [
2504
+ 0,
2505
+ "bs-0"
2506
+ ],
2507
+ [
2508
+ "px",
2509
+ "bs-px"
2510
+ ],
2511
+ [
2512
+ 0.5,
2513
+ "bs-0.5"
2514
+ ],
2515
+ [
2516
+ 1,
2517
+ "bs-1"
2518
+ ],
2519
+ [
2520
+ 1.5,
2521
+ "bs-1.5"
2522
+ ],
2523
+ [
2524
+ 2,
2525
+ "bs-2"
2526
+ ],
2527
+ [
2528
+ 2.5,
2529
+ "bs-2.5"
2530
+ ],
2531
+ [
2532
+ 3,
2533
+ "bs-3"
2534
+ ],
2535
+ [
2536
+ 3.5,
2537
+ "bs-3.5"
2538
+ ],
2539
+ [
2540
+ 4,
2541
+ "bs-4"
2542
+ ],
2543
+ [
2544
+ 5,
2545
+ "bs-5"
2546
+ ],
2547
+ [
2548
+ 6,
2549
+ "bs-6"
2550
+ ],
2551
+ [
2552
+ 7,
2553
+ "bs-7"
2554
+ ],
2555
+ [
2556
+ 8,
2557
+ "bs-8"
2558
+ ],
2559
+ [
2560
+ 9,
2561
+ "bs-9"
2562
+ ],
2563
+ [
2564
+ 10,
2565
+ "bs-10"
2566
+ ],
2567
+ [
2568
+ 11,
2569
+ "bs-11"
2570
+ ],
2571
+ [
2572
+ 12,
2573
+ "bs-12"
2574
+ ],
2575
+ [
2576
+ 14,
2577
+ "bs-14"
2578
+ ],
2579
+ [
2580
+ 16,
2581
+ "bs-16"
2582
+ ],
2583
+ [
2584
+ 20,
2585
+ "bs-20"
2586
+ ],
2587
+ [
2588
+ 24,
2589
+ "bs-24"
2590
+ ],
2591
+ [
2592
+ 28,
2593
+ "bs-28"
2594
+ ],
2595
+ [
2596
+ 32,
2597
+ "bs-32"
2598
+ ],
2599
+ [
2600
+ 36,
2601
+ "bs-36"
2602
+ ],
2603
+ [
2604
+ 40,
2605
+ "bs-40"
2606
+ ],
2607
+ [
2608
+ 44,
2609
+ "bs-44"
2610
+ ],
2611
+ [
2612
+ 48,
2613
+ "bs-48"
2614
+ ],
2615
+ [
2616
+ 52,
2617
+ "bs-52"
2618
+ ],
2619
+ [
2620
+ 56,
2621
+ "bs-56"
2622
+ ],
2623
+ [
2624
+ 60,
2625
+ "bs-60"
2626
+ ],
2627
+ [
2628
+ 64,
2629
+ "bs-64"
2630
+ ],
2631
+ [
2632
+ 72,
2633
+ "bs-72"
2634
+ ],
2635
+ [
2636
+ 80,
2637
+ "bs-80"
2638
+ ],
2639
+ [
2640
+ 96,
2641
+ "bs-96"
2642
+ ]
2643
+ ]);
2644
+ var sizes = new Set(sizeWidthMap.keys());
2645
+ var getSizeHeight = sizeHeightMap.get.bind(sizeHeightMap);
2646
+ var getSizeWidth = sizeWidthMap.get.bind(sizeWidthMap);
2647
+ var getSize = (size) => mx(getSizeHeight(size), getSizeWidth(size));
2648
+ var computeSize = (value, defaultSize) => {
2649
+ if (sizes.has(value)) {
2650
+ return value;
2651
+ } else if (value <= 0) {
2652
+ return 0;
2653
+ } else if (value === 1) {
2654
+ return "px";
2655
+ } else {
2656
+ const wholeSeries = Math.floor(value);
2657
+ const halfSeries = Math.floor(value * 2) / 2;
2658
+ const doubleSeries = Math.floor(value / 2) * 2;
2659
+ const quadrupleSeries = Math.floor(value / 4) * 4;
2660
+ if (sizes.has(halfSeries)) {
2661
+ return halfSeries;
2662
+ } else if (sizes.has(wholeSeries)) {
2663
+ return wholeSeries;
2664
+ } else if (sizes.has(doubleSeries)) {
2665
+ return doubleSeries;
2666
+ } else if (sizes.has(quadrupleSeries)) {
2667
+ return quadrupleSeries;
2668
+ } else {
2669
+ return defaultSize;
2670
+ }
2671
+ }
2672
+ };
2673
+ var sizeValue = (size) => size === "px" ? 1 : size;
2674
+
2675
+ // src/styles/fragments/text.ts
2676
+ var placeholderText = "placeholder-neutral-300 dark:placeholder-neutral-500";
2677
+ var staticPlaceholderText = "text-neutral-300 dark:text-neutral-500";
2678
+ var descriptionText = "text-sm font-normal text-description";
2679
+ var descriptionTextPrimary = "text-sm font-normal text-baseText";
2680
+ var descriptionMessage = [
2681
+ descriptionText,
2682
+ "border border-dashed border-separator rounded p-4"
2683
+ ];
2684
+ var chromeText = "text-sm font-normal";
2685
+
2686
+ // src/styles/fragments/valence.ts
2687
+ var successText = "text-xs font-medium text-successText";
2688
+ var infoText = "text-xs font-medium text-infoText";
2689
+ var warningText = "text-xs font-medium text-warningText";
2690
+ var errorText = "text-xs font-medium text-errorText";
2691
+ var valenceColorText = (valence) => {
2692
+ switch (valence) {
2693
+ case "success":
2694
+ return successText;
2695
+ case "info":
2696
+ return infoText;
2697
+ case "warning":
2698
+ return warningText;
2699
+ case "error":
2700
+ return errorText;
2701
+ default:
2702
+ return void 0;
2703
+ }
2704
+ };
2705
+ var neutralMessageColors = "border border-dashed border-separator text-subdued";
2706
+ var successMessageColors = "text-successSurfaceText bg-successSurface";
2707
+ var infoMessageColors = "text-infoSurfaceText bg-infoSurface";
2708
+ var warningMessageColors = "text-warningSurfaceText bg-warningSurface";
2709
+ var errorMessageColors = "text-errorSurfaceText bg-errorSurface";
2710
+ var messageValence = (valence) => {
2711
+ switch (valence) {
2712
+ case "success":
2713
+ return successMessageColors;
2714
+ case "info":
2715
+ return infoMessageColors;
2716
+ case "warning":
2717
+ return warningMessageColors;
2718
+ case "error":
2719
+ return errorMessageColors;
2720
+ default:
2721
+ return neutralMessageColors;
2722
+ }
2723
+ };
2724
+
2725
+ // src/styles/components/avatar.ts
2726
+ var avatarRoot = ({ size = 10, inGroup }, ...etc) => mx("relative inline-flex shrink-0", getSize(size), inGroup && (size === "px" || size <= 3 ? "-mie-1" : "-mie-2"), ...etc);
2727
+ var avatarLabel = ({ srOnly }, ...etc) => mx(srOnly && "sr-only", ...etc);
2728
+ var avatarDescription = ({ srOnly }, ...etc) => mx(descriptionText, srOnly && "sr-only", ...etc);
2729
+ var avatarFrame = ({ variant }, ...etc) => mx("is-full bs-full bg-[--surface-bg]", variant === "circle" ? "rounded-full" : "rounded", ...etc);
2730
+ var avatarStatusIcon = ({ status, size = 3 }, ...etc) => mx("absolute block-end-0 inline-end-0", getSize(size), status === "inactive" ? "text-amber-350 dark:text-amber-250" : status === "active" ? "text-emerald-350 dark:text-emerald-250" : "text-neutral-350 dark:text-neutral-250", ...etc);
2731
+ var avatarRing = ({ status, variant, animation }, ...etc) => mx("absolute inset-0 border-2", variant === "circle" ? "rounded-full" : "rounded", status === "current" ? "border-primary-400 dark:border-primary-500" : status === "active" ? "border-emerald-400 dark:border-emerald-400" : status === "error" ? "border-rose-400 dark:border-rose-500" : status === "warning" ? "border-amber-400 dark:border-amber-500" : status === "inactive" ? "border-separator" : status === "internal" ? "border-fuchsia-600" : "border-[color:var(--surface-bg)]", animation === "pulse" ? "animate-halo-pulse" : "", ...etc);
2732
+ var avatarFallbackText = (_props, ...etc) => mx("fill-white", ...etc);
2733
+ var avatarGroup = (_props, ...etc) => mx("inline-flex items-center", ...etc);
2734
+ var avatarGroupLabel = ({ size, srOnly }, ...etc) => mx(srOnly ? "sr-only" : "rounded-full truncate text-sm leading-none plb-1 pli-2 relative z-[1] flex items-center justify-center", size && getSizeHeight(size), ...etc);
2735
+ var avatarGroupDescription = ({ srOnly }, ...etc) => mx(srOnly ? "sr-only" : descriptionText, ...etc);
2736
+ var avatarTheme = {
2737
+ root: avatarRoot,
2738
+ label: avatarLabel,
2739
+ description: avatarDescription,
2740
+ statusIcon: avatarStatusIcon,
2741
+ frame: avatarFrame,
2742
+ ring: avatarRing,
2743
+ fallbackText: avatarFallbackText,
2744
+ group: avatarGroup,
2745
+ groupLabel: avatarGroupLabel,
2746
+ groupDescription: avatarGroupDescription
2747
+ };
2748
+
2749
+ // src/styles/components/breadcrumb.ts
2750
+ var breadcrumbRoot = (_props, ...etc) => mx("shrink-0 flex items-center", ...etc);
2751
+ var breadcrumbList = (_props, ...etc) => mx("contents", ...etc);
2752
+ var breadcrumbListItem = (_props, ...etc) => mx("contents", ...etc);
2753
+ var breadcrumbCurrent = (_props, ...etc) => mx(...etc);
2754
+ var breadcrumbSeparator = (_props, ...etc) => mx("opacity-50", ...etc);
2755
+ var breadcrumbTheme = {
2756
+ root: breadcrumbRoot,
2757
+ list: breadcrumbList,
2758
+ listItem: breadcrumbListItem,
2759
+ current: breadcrumbCurrent,
2760
+ separator: breadcrumbSeparator
2761
+ };
2762
+
2763
+ // src/styles/components/button.ts
2764
+ var primaryButtonColors = "text-accentSurfaceText bg-accentSurface hover:bg-accentSurfaceHover aria-pressed:bg-primary-500 dark:aria-pressed:bg-primary-500 data-[state=open]:bg-primary-500 dark:data-[state=open]:bg-primary-500 aria-checked:bg-primary-500 dark:aria-checked:bg-primary-500 aria-checked:text-primary-100";
2765
+ var staticDefaultButtonColors = "bg-inputSurface";
2766
+ var defaultButtonColors = mx(staticDefaultButtonColors, "data-[state=open]:bg-inputSurface aria-pressed:text-accentText aria-pressed:bg-baseSurface aria-checked:text-accentText aria-checked:bg-baseSurface");
2767
+ var ghostButtonColors = mx(ghostHover, "hover:text-inherit data-[state=open]:bg-inputSurface aria-pressed:text-accentText aria-pressed:bg-baseSurface aria-checked:text-accentText aria-checked:bg-baseSurface");
2768
+ var buttonRoot = (_props, ...etc) => {
2769
+ return mx("dx-button dx-focus-ring group max-is-full [&_span]:truncate", ...etc);
2770
+ };
2771
+ var buttonGroup = (_props, ...etc) => {
2772
+ return mx("inline-flex rounded-sm [&>:first-child]:rounded-is-sm [&>:last-child]:rounded-ie-sm [&>button]:relative", ...etc);
2773
+ };
2774
+ var buttonTheme = {
2775
+ root: buttonRoot,
2776
+ group: buttonGroup
2777
+ };
2778
+
2779
+ // src/styles/components/dialog.ts
2780
+ var sizeMap = {
2781
+ sm: "md:!max-is-[24rem]",
2782
+ md: "md:!max-is-[32rem]",
2783
+ lg: "md:!max-is-[40rem]",
2784
+ xl: "md:!max-is-[60rem]"
2785
+ };
2786
+ var dialogOverlay = (_props, ...etc) => mx("dx-dialog__overlay", ...etc);
2787
+ var dialogContent = ({ inOverlayLayout, size }, ...etc) => {
2788
+ return mx("@container dx-dialog__content dx-focus-ring modal-surface density-coarse is-full gap-4", !inOverlayLayout && "fixed z-50 top-[50%] left-[50%] -translate-x-[50%] -translate-y-[50%]", size && sizeMap[size], ...etc);
2789
+ };
2790
+ var dialogHeader = (_props, ...etc) => mx("dx-dialog__header flex items-center justify-between", ...etc);
2791
+ var dialogBody = (_props, ...etc) => mx("dx-dialog__body flex flex-col gap-4 bs-full overflow-hidden", ...etc);
2792
+ var dialogActionBar = (_props, ...etc) => mx("dx-dialog__actionbar flex items-center density-coarse", ...etc);
2793
+ var dialogTitle = ({ srOnly }, ...etc) => mx("dx-dialog__title", srOnly && "sr-only", ...etc);
2794
+ var dialogDescription = ({ srOnly }, ...etc) => mx("dx-dialog__description", descriptionText, srOnly && "sr-only", ...etc);
2795
+ var dialogTheme = {
2796
+ overlay: dialogOverlay,
2797
+ content: dialogContent,
2798
+ header: dialogHeader,
2799
+ body: dialogBody,
2800
+ actionbar: dialogActionBar,
2801
+ title: dialogTitle,
2802
+ description: dialogDescription
2803
+ };
2804
+
2805
+ // src/styles/components/icon.ts
2806
+ var iconRoot = ({ size }, etc) => mx("shrink-0 bs-[1em] is-[1em] text-[var(--icons-color,currentColor)]", size && getSize(size), etc);
2807
+ var iconTheme = {
2808
+ root: iconRoot
2809
+ };
2810
+
2811
+ // src/styles/components/icon-button.ts
2812
+ var iconButtonRoot = ({ iconOnly }, ...etc) => {
2813
+ return mx("gap-2", iconOnly && "p-iconButtonPadding min-bs-0", ...etc);
2814
+ };
2815
+ var iconButtonTheme = {
2816
+ root: iconButtonRoot
2817
+ };
2818
+
2819
+ // src/styles/components/input.ts
2820
+ var neutralInputValence = "";
2821
+ var successInputValence = "shadow-emerald-500/50 dark:shadow-emerald-600/50";
2822
+ var infoInputValence = "shadow-cyan-500/50 dark:shadow-cyan-600/50";
2823
+ var warningInputValence = "shadow-amber-500/50 dark:shadow-amber-600/50";
2824
+ var errorInputValence = "shadow-rose-500/50 dark:shadow-rose-600/50";
2825
+ var textInputSurfaceFocus = "transition-colors bg-textInputSurface focus:bg-focusSurface border border-separator focus:border-separator";
2826
+ var textInputSurfaceHover = "hover:bg-textInputSurface focus:hover:bg-focusSurface";
2827
+ var booleanInputSurface = "shadow-inner transition-colors bg-unAccent aria-checked:bg-accentSurface aria-[checked=mixed]:bg-accentSurface";
2828
+ var booleanInputSurfaceHover = "hover:bg-unAccentHover hover:aria-checked:bg-accentSurfaceHover hover:aria-[checked=mixed]:bg-accentSurfaceHover";
2829
+ var inputTextLabel = "text-sm text-description plb-1";
2830
+ var inputValence = (valence) => {
2831
+ switch (valence) {
2832
+ case "success":
2833
+ return successInputValence;
2834
+ case "info":
2835
+ return infoInputValence;
2836
+ case "warning":
2837
+ return warningInputValence;
2838
+ case "error":
2839
+ return errorInputValence;
2840
+ default:
2841
+ return null;
2842
+ }
2843
+ };
2844
+ var sharedSubduedInputStyles = (props) => [
2845
+ 'plb-0 is-full bg-transparent text-current [[data-drag-autoscroll="active"]_&]:pointer-events-none',
2846
+ props.density === "fine" ? fineBlockSize : coarseBlockSize,
2847
+ placeholderText,
2848
+ subduedFocus,
2849
+ props.disabled && staticDisabled
2850
+ ];
2851
+ var sharedDefaultInputStyles = (props) => [
2852
+ 'plb-0 is-full text-baseText rounded-sm text-[color:var(--surface-text)] [[data-drag-autoscroll="active"]_&]:pointer-events-none',
2853
+ textInputSurfaceFocus,
2854
+ placeholderText,
2855
+ props.density === "fine" ? fineDimensions : coarseDimensions,
2856
+ props.disabled ? staticDisabled : textInputSurfaceHover
2857
+ ];
2858
+ var sharedStaticInputStyles = (props) => [
2859
+ 'plb-0 is-full text-baseText rounded-sm text-[color:var(--surface-text)] [[data-drag-autoscroll="active"]_&]:pointer-events-none',
2860
+ textInputSurfaceFocus,
2861
+ textInputSurfaceHover,
2862
+ props.focused && "bg-attention",
2863
+ placeholderText,
2864
+ inputValence(props.validationValence),
2865
+ props.disabled && staticDisabled,
2866
+ props.focused && staticFocusRing
2867
+ ];
2868
+ var inputInput = (props, ...etc) => props.variant === "subdued" ? mx(...sharedSubduedInputStyles(props), ...etc) : props.variant === "static" ? mx(...sharedStaticInputStyles(props), ...etc) : mx(...sharedDefaultInputStyles(props), !props.disabled && focusRing, inputValence(props.validationValence) || neutralInputValence, ...etc);
2869
+ var inputCheckbox = ({ size = 5 }, ...etc) => mx("dx-checkbox dx-focus-ring", getSize(size), ...etc);
2870
+ var inputCheckboxIndicator = ({ size = 5, checked }, ...etc) => mx(getSize(computeSize(sizeValue(size) * 0.65, 4)), !checked && "invisible", ...etc);
2871
+ var inputSwitch = ({ size = 5, disabled }, ...etc) => mx(
2872
+ getSizeHeight(size),
2873
+ getSizeWidth(computeSize(sizeValue(size) * 1.75, 9)),
2874
+ booleanInputSurface,
2875
+ !disabled && booleanInputSurfaceHover,
2876
+ // TODO(burdon): Added m-1 margin to make 40px width to align with 40px icon button.
2877
+ "cursor-pointer shrink-0 rounded-full pli-1 mx-1 relative",
2878
+ focusRing,
2879
+ ...etc
2880
+ );
2881
+ var inputSwitchThumb = ({ size = 5 }, ...etc) => mx(getSize(size === "px" ? "px" : size - 2), "block bg-white rounded-full transition-transform duration-100 will-change-transform data-[state=checked]:translate-x-[100%]", ...etc);
2882
+ var inputWithSegmentsInput = (props, ...etc) => mx("font-mono selection:bg-transparent mli-auto", props.disabled && "cursor-not-allowed", ...etc);
2883
+ var inputLabel = (props, ...etc) => mx("block", inputTextLabel, props.srOnly && "sr-only", ...etc);
2884
+ var inputDescription = (props, ...etc) => mx(descriptionText, props.srOnly && "sr-only", ...etc);
2885
+ var inputDescriptionAndValidation = (props, ...etc) => mx("leading-none mlb-labelSpacingBlock", props.srOnly && "sr-only", ...etc);
2886
+ var inputValidation = (props, ...etc) => mx(descriptionText, props.srOnly ? "sr-only" : valenceColorText(props.validationValence), ...etc);
2887
+ var inputTheme = {
2888
+ input: inputInput,
2889
+ inputWithSegments: inputWithSegmentsInput,
2890
+ checkbox: inputCheckbox,
2891
+ checkboxIndicator: inputCheckboxIndicator,
2892
+ label: inputLabel,
2893
+ description: inputDescription,
2894
+ validation: inputValidation,
2895
+ switch: inputSwitch,
2896
+ switchThumb: inputSwitchThumb,
2897
+ descriptionAndValidation: inputDescriptionAndValidation
2898
+ };
2899
+
2900
+ // src/styles/components/link.ts
2901
+ var linkRoot = ({ variant }, ...etc) => mx("underline decoration-1 underline-offset-2 transition-color rounded-sm", variant === "neutral" ? "text-inherit hover:opacity-90 visited:text-inherit visited:hover:opacity-90" : "text-accentText hover:text-accentTextHover visited:text-accentText visited:hover:text-accentTextHover", focusRing, ...etc);
2902
+ var linkTheme = {
2903
+ root: linkRoot
2904
+ };
2905
+
2906
+ // src/styles/components/list.ts
2907
+ var listRoot = (_, ...etc) => mx(...etc);
2908
+ var listItem = ({ collapsible }, ...etc) => mx(!collapsible && "flex", ...etc);
2909
+ var listItemEndcap = ({ density }, ...etc) => mx(density === "fine" ? getSize(8) : getSize(10), "shrink-0 flex items-center justify-center", ...etc);
2910
+ var listItemHeading = ({ density }, ...etc) => mx(densityBlockSize(density), "flex items-center", ...etc);
2911
+ var listItemDragHandleIcon = (_props, ...etc) => mx(getSize(5), "mbs-2.5", ...etc);
2912
+ var listItemOpenTrigger = ({ density }, ...etc) => mx("is-5 rounded flex justify-center items-center", densityBlockSize(density), ghostHover, focusRing, ...etc);
2913
+ var listItemOpenTriggerIcon = (_props, ...etc) => {
2914
+ return mx(getSize(5), ...etc);
2915
+ };
2916
+ var listTheme = {
2917
+ root: listRoot,
2918
+ item: {
2919
+ root: listItem,
2920
+ endcap: listItemEndcap,
2921
+ heading: listItemHeading,
2922
+ dragHandleIcon: listItemDragHandleIcon,
2923
+ openTrigger: listItemOpenTrigger,
2924
+ openTriggerIcon: listItemOpenTriggerIcon
2925
+ }
2926
+ };
2927
+
2928
+ // src/styles/components/main.ts
2929
+ var topbarBlockPaddingStart = "pbs-[--topbar-size] sticky-top-from-topbar-bottom";
2930
+ var bottombarBlockPaddingEnd = "pbe-[--statusbar-size] sticky-bottom-from-statusbar-bottom";
2931
+ var mainPadding = "dx-main-content-padding";
2932
+ var mainPaddingTransitions = "dx-main-content-padding-transitions";
2933
+ var mainIntrinsicSize = "dx-main-intrinsic-size";
2934
+ var mainContent = ({ bounce }, ...etc) => mx(mainPadding, mainPaddingTransitions, bounce && "dx-main-bounce-layout", "dx-focus-ring-main", ...etc);
2935
+ var mainSidebar = (_, ...etc) => mx("dx-main-sidebar", "dx-focus-ring-inset-over-all", ...etc);
2936
+ var mainOverlay = (_, ...etc) => mx("dx-main-overlay", ...etc);
2937
+ var mainTheme = {
2938
+ content: mainContent,
2939
+ sidebar: mainSidebar,
2940
+ overlay: mainOverlay
2941
+ };
2942
+
2943
+ // src/styles/components/menu.ts
2944
+ var menuViewport = (_props, ...etc) => mx("rounded p-1 max-bs-[--radix-dropdown-menu-content-available-height] overflow-y-auto", ...etc);
2945
+ var menuContent = ({ elevation }, ...etc) => mx(
2946
+ "is-48 rounded md:is-56 border border-separator",
2947
+ surfaceZIndex({
2948
+ elevation,
2949
+ level: "menu"
2950
+ }),
2951
+ surfaceShadow({
2952
+ elevation: "positioned"
2953
+ }),
2954
+ modalSurface,
2955
+ ...etc
2956
+ );
2957
+ var menuItem = (_props, ...etc) => mx("flex cursor-pointer select-none items-center gap-2 rounded-sm pli-2 plb-2 text-sm", "data-[highlighted]:bg-hoverSurface", subduedFocus, dataDisabled, ...etc);
2958
+ var menuSeparator = (_props, ...etc) => mx("mlb-1 mli-2 bs-px bg-separator", ...etc);
2959
+ var menuGroupLabel = (_props, ...etc) => mx(descriptionText, "select-none pli-2 plb-2", ...etc);
2960
+ var menuArrow = (_props, ...etc) => mx("fill-separator", ...etc);
2961
+ var menuTheme = {
2962
+ content: menuContent,
2963
+ viewport: menuViewport,
2964
+ item: menuItem,
2965
+ separator: menuSeparator,
2966
+ groupLabel: menuGroupLabel,
2967
+ arrow: menuArrow
2968
+ };
2969
+
2970
+ // src/styles/components/message.ts
2971
+ var messageRoot = ({ valence }, etc) => {
2972
+ return mx("p-trimSm rounded-md", messageValence(valence), etc);
2973
+ };
2974
+ var messageTitle = (_, etc) => {
2975
+ return mx("font-medium flex gap-trimSm", etc);
2976
+ };
2977
+ var messageIcon = (_, etc) => {
2978
+ return mx("flex bs-[1lh] items-center", etc);
2979
+ };
2980
+ var messageContent = (_, etc) => {
2981
+ return mx("first:font-medium", etc);
2982
+ };
2983
+ var messageTheme = {
2984
+ root: messageRoot,
2985
+ content: messageContent,
2986
+ icon: messageIcon,
2987
+ title: messageTitle
2988
+ };
2989
+
2990
+ // src/styles/components/popover.ts
2991
+ var popoverViewport = ({ constrainBlock, constrainInline }, ...etc) => mx("flex flex-col rounded-md", constrainBlock && "max-bs-[--radix-popover-content-available-height] overflow-hidden", constrainInline && "max-is-[--radix-popover-content-available-width] overflow-hidden", ...etc);
2992
+ var popoverContent = ({ elevation }, ...etc) => mx("border border-separator rounded-md", modalSurface, surfaceShadow({
2993
+ elevation: "positioned"
2994
+ }), surfaceZIndex({
2995
+ elevation,
2996
+ level: "menu"
2997
+ }), focusRing, ...etc);
2998
+ var popoverArrow = (_props, ...etc) => mx("fill-separator", ...etc);
2999
+ var popoverTheme = {
3000
+ content: popoverContent,
3001
+ viewport: popoverViewport,
3002
+ arrow: popoverArrow
3003
+ };
3004
+
3005
+ // src/styles/components/scroll-area.ts
3006
+ var scrollAreaRoot = ({ orientation, margin, thin }, ...etc) => mx(
3007
+ "overflow-hidden",
3008
+ orientation === "vertical" && "group/scroll-v bs-full is-full min-bs-0",
3009
+ orientation === "horizontal" && "group/scroll-h bs-full is-full min-is-0",
3010
+ orientation === "all" && "group/scroll-all bs-full is-full min-bs-0 min-is-0",
3011
+ // Balance left/right, top/bottom "margin" with scrollbar.
3012
+ margin && [
3013
+ orientation === "vertical" && (thin ? "pis-[4px]" : "pis-[8px]"),
3014
+ orientation === "horizontal" && (thin ? "pbs-[4px]" : "pbs-[8px]"),
3015
+ orientation === "all" && (thin ? "pis-[4px] pbs-[8px]" : "pis-[8px] pbs-[8px]")
3016
+ ],
3017
+ ...etc
3018
+ );
3019
+ var scrollAreaViewport = ({ orientation, autoHide, padding: padding2, snap, thin }, ...etc) => mx(
3020
+ "bs-full is-full",
3021
+ orientation === "vertical" && "flex flex-col overflow-y-scroll",
3022
+ orientation === "horizontal" && "flex overflow-x-scroll",
3023
+ orientation === "all" && "overflow-scroll",
3024
+ thin ? "[&::-webkit-scrollbar]:is-[4px] [&::-webkit-scrollbar]:bs-[4px]" : "[&::-webkit-scrollbar]:is-[8px] [&::-webkit-scrollbar]:bs-[8px]",
3025
+ // '[&::-webkit-scrollbar-thumb]:rounded-full',
3026
+ "[&::-webkit-scrollbar-thumb]:bg-transparent",
3027
+ "[&::-webkit-scrollbar-corner]:bg-transparent",
3028
+ // TODO(burdon): Define token.
3029
+ autoHide ? [
3030
+ orientation === "vertical" && "group-hover/scroll-v:[&::-webkit-scrollbar-thumb]:bg-subduedSeparator",
3031
+ orientation === "horizontal" && "group-hover/scroll-h:[&::-webkit-scrollbar-thumb]:bg-subduedSeparator",
3032
+ orientation === "all" && "group-hover/scroll-all:[&::-webkit-scrollbar-thumb]:bg-subduedSeparator"
3033
+ ] : [
3034
+ orientation === "vertical" && "[&::-webkit-scrollbar-thumb]:bg-subduedSeparator",
3035
+ orientation === "horizontal" && "[&::-webkit-scrollbar-thumb]:bg-subduedSeparator",
3036
+ orientation === "all" && "[&::-webkit-scrollbar-thumb]:bg-subduedSeparator"
3037
+ ],
3038
+ // TODO(burdon): Are scrollbars reserved on native devices?
3039
+ padding2 && [
3040
+ orientation === "vertical" && "pli-[4px]",
3041
+ orientation === "horizontal" && "pbe-[4px]",
3042
+ orientation === "all" && "pis-[4px] pbe-[4px]"
3043
+ ],
3044
+ snap && [
3045
+ orientation === "vertical" && "snap-y snap-mandatory",
3046
+ orientation === "horizontal" && "snap-x snap-mandatory",
3047
+ orientation === "all" && "snap-both snap-mandatory"
3048
+ ],
3049
+ ...etc
3050
+ );
3051
+ var scrollAreaTheme = {
3052
+ root: scrollAreaRoot,
3053
+ viewport: scrollAreaViewport
3054
+ };
3055
+
3056
+ // src/styles/components/select.ts
3057
+ var selectContent = ({ elevation }, ...etc) => {
3058
+ return mx("min-w-[--radix-select-trigger-width] rounded max-bs-[--radix-select-content-available-height] border border-separator", modalSurface, surfaceShadow({
3059
+ elevation: "positioned"
3060
+ }), surfaceZIndex({
3061
+ elevation,
3062
+ level: "menu"
3063
+ }), ...etc);
3064
+ };
3065
+ var selectViewport = (_props, ...etc) => mx(...etc);
3066
+ var selectItem = (_props, ...etc) => mx("flex items-center min-bs-[2rem] pli-3 plb-1 gap-2", "text-baseText leading-none select-none outline-none", "[&>svg]:invisible [&[data-state=checked]>svg]:visible", ghostHighlighted, ...etc);
3067
+ var selectItemIndicator = (_props, ...etc) => mx("items-center", ...etc);
3068
+ var selectArrow = (_props, ...etc) => mx("fill-separator", ...etc);
3069
+ var selectSeparator = (_props, ...etc) => mx(blockSeparator, separatorBorderColor, ...etc);
3070
+ var selectScrollButton = (_props, ...etc) => mx(modalSurface, "flex items-center justify-center cursor-default bs-6 is-full", ...etc);
3071
+ var selectTheme = {
3072
+ content: selectContent,
3073
+ viewport: selectViewport,
3074
+ item: selectItem,
3075
+ itemIndicator: selectItemIndicator,
3076
+ arrow: selectArrow,
3077
+ separator: selectSeparator,
3078
+ scrollButton: selectScrollButton
3079
+ };
3080
+
3081
+ // src/styles/components/separator.ts
3082
+ var separatorRoot = ({ orientation, subdued }, ...etc) => mx(orientation === "vertical" ? inlineSeparator : blockSeparator, subdued ? subduedSeparatorBorderColor : separatorBorderColor, ...etc);
3083
+ var separatorTheme = {
3084
+ root: separatorRoot
3085
+ };
3086
+
3087
+ // src/styles/components/skeleton.ts
3088
+ var skeletonRoot = ({ variant = "default" }, ...etc) => mx("animate-pulse bg-neutral-250 dark:bg-neutral-750 rounded-md", variant === "circle" && "rounded-full", variant === "text" && "rounded", ...etc);
3089
+ var skeletonTheme = {
3090
+ root: skeletonRoot
3091
+ };
3092
+
3093
+ // src/styles/components/status.ts
3094
+ var statusRoot = ({ variant = "default" }, ...etc) => mx("bs-1 relative bg-hoverOverlay rounded-full overflow-hidden", variant === "main-bottom" ? "is-full block" : "is-20 inline-block", ...etc);
3095
+ var statusBar = ({ indeterminate, variant = "default" }, ...etc) => mx("absolute inset-block-0 block rounded-full", variant === "main-bottom" ? "bg-accentSurface" : "bg-unAccent", indeterminate ? "animate-progress-indeterminate" : "inline-start-0", ...etc);
3096
+ var statusTheme = {
3097
+ root: statusRoot,
3098
+ bar: statusBar
3099
+ };
3100
+
3101
+ // src/styles/components/tag.ts
3102
+ var tagRoot = (_, ...etc) => mx("dx-tag", ...etc);
3103
+ var tagTheme = {
3104
+ root: tagRoot
3105
+ };
3106
+
3107
+ // src/styles/components/toast.ts
3108
+ var toastViewport = (_props, ...etc) => mx(
3109
+ // TODO(burdon): block-end should take into account status bar.
3110
+ "z-40 fixed block-end-[calc(env(safe-area-inset-bottom)+1rem)] inset-start-[calc(env(safe-area-inset-left)+1rem)] inset-end-[calc(env(safe-area-inset-right)+1rem)] is-auto md:inline-end-[calc(env(safe-area-inset-right)+1rem)] md:inline-start-auto md:is-full md:max-is-sm",
3111
+ "rounded-md flex flex-col gap-2",
3112
+ ...etc
3113
+ );
3114
+ var toastRoot = (_props, ...etc) => mx("rounded-md flex p-2 gap-2", modalSurface, surfaceShadow({
3115
+ elevation: "toast"
3116
+ }), "radix-state-open:animate-toast-slide-in-bottom md:radix-state-open:animate-toast-slide-in-right", "radix-state-closed:animate-toast-hide", "radix-swipe-end:animate-toast-swipe-out", "translate-x-radix-toast-swipe-move-x", "radix-swipe-cancel:translate-x-0 radix-swipe-cancel:duration-200 radix-swipe-cancel:ease-[ease]", focusRing, ...etc);
3117
+ var toastBody = (_props, ...etc) => mx("grow flex flex-col gap-1 justify-center pis-2", ...etc);
3118
+ var toastActions = (_props, ...etc) => mx("shrink-0 flex flex-col gap-1 justify-center", ...etc);
3119
+ var toastTitle = ({ srOnly }, ...etc) => mx("shrink-0 font-medium", srOnly && "sr-only", ...etc);
3120
+ var toastDescription = ({ srOnly }, ...etc) => mx(descriptionText, "shrink-0", srOnly && "sr-only", ...etc);
3121
+ var toastTheme = {
3122
+ viewport: toastViewport,
3123
+ root: toastRoot,
3124
+ body: toastBody,
3125
+ title: toastTitle,
3126
+ description: toastDescription,
3127
+ actions: toastActions
3128
+ };
3129
+
3130
+ // src/styles/components/toolbar.ts
3131
+ var toolbarLayout = "is-full shrink-0 flex flex-nowrap p-1 gap-1 items-center overflow-x-auto scrollbar-none contain-layout";
3132
+ var toolbarRoot = ({ density, disabled, layoutManaged }, ...etc) => {
3133
+ return mx("bg-toolbarSurface dx-toolbar", density === "coarse" && "bs-[var(--rail-size)] !pli-3", disabled && "*:opacity-20", !layoutManaged && toolbarLayout, ...etc);
3134
+ };
3135
+ var toolbarInner = ({ layoutManaged }, ...etc) => {
3136
+ return mx(!layoutManaged && [
3137
+ "flex gap-1",
3138
+ textBlockWidth
3139
+ ], ...etc);
3140
+ };
3141
+ var toolbarTheme = {
3142
+ root: toolbarRoot,
3143
+ inner: toolbarInner
3144
+ };
3145
+
3146
+ // src/styles/components/tooltip.ts
3147
+ var tooltipContent = ({ elevation }, ...etc) => mx(
3148
+ "inline-flex items-center rounded-sm plb-1 pli-2 max-is-64 bg-inverseSurface text-inverseSurfaceText",
3149
+ // popperMotion,
3150
+ surfaceShadow({
3151
+ elevation: "positioned"
3152
+ }),
3153
+ surfaceZIndex({
3154
+ elevation,
3155
+ level: "tooltip"
3156
+ }),
3157
+ chromeText,
3158
+ ...etc
3159
+ );
3160
+ var tooltipArrow = (_props, ...etc) => mx("fill-inverseSurface", ...etc);
3161
+ var tooltipTheme = {
3162
+ content: tooltipContent,
3163
+ arrow: tooltipArrow
3164
+ };
3165
+
3166
+ // src/styles/components/treegrid.ts
3167
+ var levelStyles = /* @__PURE__ */ new Map([
3168
+ [
3169
+ 1,
3170
+ "[&>.indent:first-of-type]:pis-0 font-medium"
3171
+ ],
3172
+ [
3173
+ 2,
3174
+ "[&>.indent:first-of-type]:pis-0"
3175
+ ],
3176
+ [
3177
+ 3,
3178
+ "[&>.indent:first-of-type]:pis-1"
3179
+ ],
3180
+ [
3181
+ 4,
3182
+ "[&>.indent:first-of-type]:pis-2"
3183
+ ],
3184
+ [
3185
+ 5,
3186
+ "[&>.indent:first-of-type]:pis-3"
3187
+ ],
3188
+ [
3189
+ 6,
3190
+ "[&>.indent:first-of-type]:pis-4"
3191
+ ],
3192
+ [
3193
+ 7,
3194
+ "[&>.indent:first-of-type]:pis-5"
3195
+ ],
3196
+ [
3197
+ 8,
3198
+ "[&>.indent:first-of-type]:pis-6"
3199
+ ]
3200
+ ]);
3201
+ var treegridRoot = (_, ...etc) => mx("grid", ...etc);
3202
+ var treegridRow = ({ level = 1 }, ...etc) => mx("contents", levelStyles.get(Math.min(Math.max(Math.round(level), 1), 8)), ...etc);
3203
+ var treegridCell = ({ indent }, ...etc) => mx(indent && "indent", ...etc);
3204
+ var treegridTheme = {
3205
+ root: treegridRoot,
3206
+ row: treegridRow,
3207
+ cell: treegridCell
3208
+ };
3209
+
3210
+ // src/styles/primitives/container.ts
3211
+ var padding = {
3212
+ sm: "pli-2",
3213
+ md: "pli-3",
3214
+ lg: "pli-6"
3215
+ };
3216
+ var containerColumn = ({ variant }, ...etc) => mx(variant && padding[variant], ...etc);
3217
+ var containerTheme = {
3218
+ column: containerColumn
3219
+ };
3220
+
3221
+ // src/styles/theme.ts
3222
+ import { get } from "@dxos/util";
3223
+ var defaultTheme = {
3224
+ themeName: () => "default",
3225
+ //
3226
+ // Primitives
3227
+ //
3228
+ container: containerTheme,
3229
+ //
3230
+ // Components
3231
+ //
3232
+ anchoredOverflow: anchoredOverflowTheme,
3233
+ avatar: avatarTheme,
3234
+ breadcrumb: breadcrumbTheme,
3235
+ button: buttonTheme,
3236
+ dialog: dialogTheme,
3237
+ icon: iconTheme,
3238
+ iconButton: iconButtonTheme,
3239
+ input: inputTheme,
3240
+ link: linkTheme,
3241
+ list: listTheme,
3242
+ main: mainTheme,
3243
+ message: messageTheme,
3244
+ menu: menuTheme,
3245
+ popover: popoverTheme,
3246
+ scrollArea: scrollAreaTheme,
3247
+ select: selectTheme,
3248
+ separator: separatorTheme,
3249
+ skeleton: skeletonTheme,
3250
+ status: statusTheme,
3251
+ tag: tagTheme,
3252
+ toast: toastTheme,
3253
+ toolbar: toolbarTheme,
3254
+ tooltip: tooltipTheme,
3255
+ treegrid: treegridTheme
3256
+ };
3257
+ var bindTheme = (theme) => {
3258
+ return (path, styleProps, ...etc) => {
3259
+ const result = get(theme, path);
3260
+ return typeof result === "function" ? result(styleProps ?? {}, ...etc) : void 0;
3261
+ };
3262
+ };
3263
+ var defaultTx = bindTheme(defaultTheme);
3264
+
3265
+ // src/index.ts
3266
+ var { theme: tokens } = tailwindConfig({});
3267
+ var osTranslations = "dxos.org/i18n/os";
3268
+ export {
3269
+ accentSurface,
3270
+ activeSurface,
3271
+ anchoredOverflowAnchor,
3272
+ anchoredOverflowRoot,
3273
+ anchoredOverflowTheme,
3274
+ attentionSurface,
3275
+ avatarDescription,
3276
+ avatarFallbackText,
3277
+ avatarFrame,
3278
+ avatarGroup,
3279
+ avatarGroupDescription,
3280
+ avatarGroupLabel,
3281
+ avatarLabel,
3282
+ avatarRing,
3283
+ avatarRoot,
3284
+ avatarStatusIcon,
3285
+ avatarTheme,
3286
+ baseSurface,
3287
+ bindTheme,
3288
+ blockSeparator,
3289
+ bottombarBlockPaddingEnd,
3290
+ bounceLayout,
3291
+ breadcrumbCurrent,
3292
+ breadcrumbList,
3293
+ breadcrumbListItem,
3294
+ breadcrumbRoot,
3295
+ breadcrumbSeparator,
3296
+ breadcrumbTheme,
3297
+ buttonGroup,
3298
+ buttonRoot,
3299
+ buttonTheme,
3300
+ cardDefaultInlineSize,
3301
+ cardMaxInlineSize,
3302
+ cardMinInlineSize,
3303
+ chromeText,
3304
+ coarseBlockSize,
3305
+ coarseButtonDimensions,
3306
+ coarseButtonPadding,
3307
+ coarseDimensions,
3308
+ coarseTextPadding,
3309
+ computeSize,
3310
+ containerTheme,
3311
+ contentShadow,
3312
+ dataDisabled,
3313
+ defaultButtonColors,
3314
+ defaultTheme,
3315
+ defaultTx,
3316
+ densityBlockSize,
3317
+ descriptionMessage,
3318
+ descriptionText,
3319
+ descriptionTextPrimary,
3320
+ dialogActionBar,
3321
+ dialogBody,
3322
+ dialogContent,
3323
+ dialogDescription,
3324
+ dialogHeader,
3325
+ dialogOverlay,
3326
+ dialogTheme,
3327
+ dialogTitle,
3328
+ dropRing,
3329
+ dropRingInner,
3330
+ errorInputValence,
3331
+ errorMessageColors,
3332
+ errorText,
3333
+ fineBlockSize,
3334
+ fineButtonDimensions,
3335
+ fineButtonPadding,
3336
+ fineDimensions,
3337
+ fineTextPadding,
3338
+ fixedInsetFlexLayout,
3339
+ focusRing,
3340
+ getHashHue,
3341
+ getHashStyles,
3342
+ getSize,
3343
+ getSizeHeight,
3344
+ getSizeWidth,
3345
+ getStyles,
3346
+ ghostButtonColors,
3347
+ ghostFocusWithin,
3348
+ ghostHighlighted,
3349
+ ghostHover,
3350
+ ghostSelected,
3351
+ ghostSelectedContainerMd,
3352
+ ghostSelectedCurrent,
3353
+ ghostSelectedTrackingInterFromNormal,
3354
+ group,
3355
+ groupBorder,
3356
+ groupHoverControlItemWithTransition,
3357
+ hoverColors,
3358
+ hoverableControlItem,
3359
+ hoverableControlItemTransition,
3360
+ hoverableControls,
3361
+ hoverableFocusedControls,
3362
+ hoverableFocusedKeyboardControls,
3363
+ hoverableFocusedWithinControls,
3364
+ hoverableOpenControlItem,
3365
+ hues,
3366
+ iconButtonRoot,
3367
+ iconButtonTheme,
3368
+ iconRoot,
3369
+ iconTheme,
3370
+ infoInputValence,
3371
+ infoMessageColors,
3372
+ infoText,
3373
+ inlineSeparator,
3374
+ inputCheckbox,
3375
+ inputCheckboxIndicator,
3376
+ inputDescription,
3377
+ inputDescriptionAndValidation,
3378
+ inputInput,
3379
+ inputLabel,
3380
+ inputSwitch,
3381
+ inputSwitchThumb,
3382
+ inputTheme,
3383
+ inputValence,
3384
+ inputValidation,
3385
+ inputWithSegmentsInput,
3386
+ linkRoot,
3387
+ linkTheme,
3388
+ listItem,
3389
+ listItemDragHandleIcon,
3390
+ listItemEndcap,
3391
+ listItemHeading,
3392
+ listItemOpenTrigger,
3393
+ listItemOpenTriggerIcon,
3394
+ listRoot,
3395
+ listTheme,
3396
+ mainContent,
3397
+ mainIntrinsicSize,
3398
+ mainOverlay,
3399
+ mainPadding,
3400
+ mainPaddingTransitions,
3401
+ mainSidebar,
3402
+ mainTheme,
3403
+ menuArrow,
3404
+ menuContent,
3405
+ menuGroupLabel,
3406
+ menuItem,
3407
+ menuSeparator,
3408
+ menuTheme,
3409
+ menuViewport,
3410
+ messageContent,
3411
+ messageIcon,
3412
+ messageRoot,
3413
+ messageTheme,
3414
+ messageTitle,
3415
+ messageValence,
3416
+ modalSurface,
3417
+ mx,
3418
+ neutralInputValence,
3419
+ neutralMessageColors,
3420
+ osTranslations,
3421
+ placeholderText,
3422
+ popoverArrow,
3423
+ popoverContent,
3424
+ popoverTheme,
3425
+ popoverViewport,
3426
+ popperMotion,
3427
+ primaryButtonColors,
3428
+ scrollAreaRoot,
3429
+ scrollAreaTheme,
3430
+ scrollAreaViewport,
3431
+ selectArrow,
3432
+ selectContent,
3433
+ selectItem,
3434
+ selectItemIndicator,
3435
+ selectScrollButton,
3436
+ selectSeparator,
3437
+ selectTheme,
3438
+ selectViewport,
3439
+ separatorBorderColor,
3440
+ separatorRoot,
3441
+ separatorTheme,
3442
+ shimmer,
3443
+ sidebarBorder,
3444
+ sidebarSurface,
3445
+ sizeHeightMap,
3446
+ sizeValue,
3447
+ sizeWidthMap,
3448
+ skeletonRoot,
3449
+ skeletonTheme,
3450
+ staticDefaultButtonColors,
3451
+ staticDisabled,
3452
+ staticFocusRing,
3453
+ staticGhostSelected,
3454
+ staticGhostSelectedCurrent,
3455
+ staticHoverableControls,
3456
+ staticPlaceholderText,
3457
+ statusBar,
3458
+ statusRoot,
3459
+ statusTheme,
3460
+ strongShimmer,
3461
+ styles,
3462
+ subduedFocus,
3463
+ subduedSeparatorBorderColor,
3464
+ subtleHover,
3465
+ successInputValence,
3466
+ successMessageColors,
3467
+ successText,
3468
+ surfaceShadow,
3469
+ surfaceZIndex,
3470
+ tagRoot,
3471
+ tagTheme,
3472
+ textBlockWidth,
3473
+ toastActions,
3474
+ toastBody,
3475
+ toastDescription,
3476
+ toastRoot,
3477
+ toastTheme,
3478
+ toastTitle,
3479
+ toastViewport,
3480
+ tokens,
3481
+ toolbarInner,
3482
+ toolbarLayout,
3483
+ toolbarRoot,
3484
+ toolbarTheme,
3485
+ tooltipArrow,
3486
+ tooltipContent,
3487
+ tooltipTheme,
3488
+ topbarBlockPaddingStart,
3489
+ treegridCell,
3490
+ treegridRoot,
3491
+ treegridRow,
3492
+ treegridTheme,
3493
+ userDefaultTokenSet,
3494
+ valenceColorText,
3495
+ warningInputValence,
3496
+ warningMessageColors,
3497
+ warningText
3498
+ };
3499
+ //# sourceMappingURL=index.mjs.map