@dxos/ui-theme 0.0.0 → 0.8.4-main.59c2e9b

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 (181) hide show
  1. package/dist/lib/browser/index.mjs +3410 -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 +3412 -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-UUMDOU7E.cjs +79 -0
  8. package/dist/plugin/node-cjs/chunk-UUMDOU7E.cjs.map +7 -0
  9. package/dist/plugin/node-cjs/chunk-ZVALPM6U.cjs +1619 -0
  10. package/dist/plugin/node-cjs/chunk-ZVALPM6U.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 +1362 -0
  19. package/dist/plugin/node-cjs/theme.css.map +7 -0
  20. package/dist/plugin/node-esm/chunk-AFRHJHP4.mjs +49 -0
  21. package/dist/plugin/node-esm/chunk-AFRHJHP4.mjs.map +7 -0
  22. package/dist/plugin/node-esm/chunk-HJE6EZWE.mjs +1614 -0
  23. package/dist/plugin/node-esm/chunk-HJE6EZWE.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 +1362 -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/alias-colors.d.ts +21 -0
  40. package/dist/types/src/config/tokens/alias-colors.d.ts.map +1 -0
  41. package/dist/types/src/config/tokens/index.d.ts +486 -0
  42. package/dist/types/src/config/tokens/index.d.ts.map +1 -0
  43. package/dist/types/src/config/tokens/lengths.d.ts +139 -0
  44. package/dist/types/src/config/tokens/lengths.d.ts.map +1 -0
  45. package/dist/types/src/config/tokens/physical-colors.d.ts +23 -0
  46. package/dist/types/src/config/tokens/physical-colors.d.ts.map +1 -0
  47. package/dist/types/src/config/tokens/semantic-colors.d.ts +187 -0
  48. package/dist/types/src/config/tokens/semantic-colors.d.ts.map +1 -0
  49. package/dist/types/src/config/tokens/sememes-calls.d.ts +3 -0
  50. package/dist/types/src/config/tokens/sememes-calls.d.ts.map +1 -0
  51. package/dist/types/src/config/tokens/sememes-codemirror.d.ts +43 -0
  52. package/dist/types/src/config/tokens/sememes-codemirror.d.ts.map +1 -0
  53. package/dist/types/src/config/tokens/sememes-hue.d.ts +4 -0
  54. package/dist/types/src/config/tokens/sememes-hue.d.ts.map +1 -0
  55. package/dist/types/src/config/tokens/sememes-sheet.d.ts +58 -0
  56. package/dist/types/src/config/tokens/sememes-sheet.d.ts.map +1 -0
  57. package/dist/types/src/config/tokens/sememes-system.d.ts +99 -0
  58. package/dist/types/src/config/tokens/sememes-system.d.ts.map +1 -0
  59. package/dist/types/src/config/tokens/sizes.d.ts +7 -0
  60. package/dist/types/src/config/tokens/sizes.d.ts.map +1 -0
  61. package/dist/types/src/config/tokens/types.d.ts +5 -0
  62. package/dist/types/src/config/tokens/types.d.ts.map +1 -0
  63. package/dist/types/src/index.d.ts +12 -0
  64. package/dist/types/src/index.d.ts.map +1 -0
  65. package/dist/types/src/plugins/esbuild-plugin.d.ts +9 -0
  66. package/dist/types/src/plugins/esbuild-plugin.d.ts.map +1 -0
  67. package/dist/types/src/plugins/plugin.d.ts +20 -0
  68. package/dist/types/src/plugins/plugin.d.ts.map +1 -0
  69. package/dist/types/src/plugins/resolveContent.d.ts +2 -0
  70. package/dist/types/src/plugins/resolveContent.d.ts.map +1 -0
  71. package/dist/types/src/styles/components/anchored-overflow.d.ts +6 -0
  72. package/dist/types/src/styles/components/anchored-overflow.d.ts.map +1 -0
  73. package/dist/types/src/styles/components/avatar.d.ts +21 -0
  74. package/dist/types/src/styles/components/avatar.d.ts.map +1 -0
  75. package/dist/types/src/styles/components/breadcrumb.d.ts +9 -0
  76. package/dist/types/src/styles/components/breadcrumb.d.ts.map +1 -0
  77. package/dist/types/src/styles/components/button.d.ts +19 -0
  78. package/dist/types/src/styles/components/button.d.ts.map +1 -0
  79. package/dist/types/src/styles/components/dialog.d.ts +15 -0
  80. package/dist/types/src/styles/components/dialog.d.ts.map +1 -0
  81. package/dist/types/src/styles/components/icon-button.d.ts +8 -0
  82. package/dist/types/src/styles/components/icon-button.d.ts.map +1 -0
  83. package/dist/types/src/styles/components/icon.d.ts +7 -0
  84. package/dist/types/src/styles/components/icon.d.ts.map +1 -0
  85. package/dist/types/src/styles/components/index.d.ts +24 -0
  86. package/dist/types/src/styles/components/index.d.ts.map +1 -0
  87. package/dist/types/src/styles/components/input.d.ts +111 -0
  88. package/dist/types/src/styles/components/input.d.ts.map +1 -0
  89. package/dist/types/src/styles/components/link.d.ts +7 -0
  90. package/dist/types/src/styles/components/link.d.ts.map +1 -0
  91. package/dist/types/src/styles/components/list.d.ts +14 -0
  92. package/dist/types/src/styles/components/list.d.ts.map +1 -0
  93. package/dist/types/src/styles/components/main.d.ts +28 -0
  94. package/dist/types/src/styles/components/main.d.ts.map +1 -0
  95. package/dist/types/src/styles/components/menu.d.ts +13 -0
  96. package/dist/types/src/styles/components/menu.d.ts.map +1 -0
  97. package/dist/types/src/styles/components/message.d.ts +11 -0
  98. package/dist/types/src/styles/components/message.d.ts.map +1 -0
  99. package/dist/types/src/styles/components/popover.d.ts +11 -0
  100. package/dist/types/src/styles/components/popover.d.ts.map +1 -0
  101. package/dist/types/src/styles/components/scroll-area.d.ts +9 -0
  102. package/dist/types/src/styles/components/scroll-area.d.ts.map +1 -0
  103. package/dist/types/src/styles/components/select.d.ts +13 -0
  104. package/dist/types/src/styles/components/select.d.ts.map +1 -0
  105. package/dist/types/src/styles/components/separator.d.ts +8 -0
  106. package/dist/types/src/styles/components/separator.d.ts.map +1 -0
  107. package/dist/types/src/styles/components/status.d.ts +9 -0
  108. package/dist/types/src/styles/components/status.d.ts.map +1 -0
  109. package/dist/types/src/styles/components/tag.d.ts +7 -0
  110. package/dist/types/src/styles/components/tag.d.ts.map +1 -0
  111. package/dist/types/src/styles/components/toast.d.ts +12 -0
  112. package/dist/types/src/styles/components/toast.d.ts.map +1 -0
  113. package/dist/types/src/styles/components/toolbar.d.ts +11 -0
  114. package/dist/types/src/styles/components/toolbar.d.ts.map +1 -0
  115. package/dist/types/src/styles/components/tooltip.d.ts +8 -0
  116. package/dist/types/src/styles/components/tooltip.d.ts.map +1 -0
  117. package/dist/types/src/styles/components/treegrid.d.ts +10 -0
  118. package/dist/types/src/styles/components/treegrid.d.ts.map +1 -0
  119. package/dist/types/src/styles/fragments/density.d.ts +13 -0
  120. package/dist/types/src/styles/fragments/density.d.ts.map +1 -0
  121. package/dist/types/src/styles/fragments/dimension.d.ts +5 -0
  122. package/dist/types/src/styles/fragments/dimension.d.ts.map +1 -0
  123. package/dist/types/src/styles/fragments/disabled.d.ts +3 -0
  124. package/dist/types/src/styles/fragments/disabled.d.ts.map +1 -0
  125. package/dist/types/src/styles/fragments/elevation.d.ts +15 -0
  126. package/dist/types/src/styles/fragments/elevation.d.ts.map +1 -0
  127. package/dist/types/src/styles/fragments/focus.d.ts +6 -0
  128. package/dist/types/src/styles/fragments/focus.d.ts.map +1 -0
  129. package/dist/types/src/styles/fragments/group.d.ts +5 -0
  130. package/dist/types/src/styles/fragments/group.d.ts.map +1 -0
  131. package/dist/types/src/styles/fragments/hover.d.ts +17 -0
  132. package/dist/types/src/styles/fragments/hover.d.ts.map +1 -0
  133. package/dist/types/src/styles/fragments/index.d.ts +17 -0
  134. package/dist/types/src/styles/fragments/index.d.ts.map +1 -0
  135. package/dist/types/src/styles/fragments/layout.d.ts +3 -0
  136. package/dist/types/src/styles/fragments/layout.d.ts.map +1 -0
  137. package/dist/types/src/styles/fragments/motion.d.ts +2 -0
  138. package/dist/types/src/styles/fragments/motion.d.ts.map +1 -0
  139. package/dist/types/src/styles/fragments/ornament.d.ts +5 -0
  140. package/dist/types/src/styles/fragments/ornament.d.ts.map +1 -0
  141. package/dist/types/src/styles/fragments/selected.d.ts +13 -0
  142. package/dist/types/src/styles/fragments/selected.d.ts.map +1 -0
  143. package/dist/types/src/styles/fragments/shimmer.d.ts +3 -0
  144. package/dist/types/src/styles/fragments/shimmer.d.ts.map +1 -0
  145. package/dist/types/src/styles/fragments/size.d.ts +9 -0
  146. package/dist/types/src/styles/fragments/size.d.ts.map +1 -0
  147. package/dist/types/src/styles/fragments/surface.d.ts +9 -0
  148. package/dist/types/src/styles/fragments/surface.d.ts.map +1 -0
  149. package/dist/types/src/styles/fragments/text.d.ts +7 -0
  150. package/dist/types/src/styles/fragments/text.d.ts.map +1 -0
  151. package/dist/types/src/styles/fragments/valence.d.ts +13 -0
  152. package/dist/types/src/styles/fragments/valence.d.ts.map +1 -0
  153. package/dist/types/src/styles/index.d.ts +4 -0
  154. package/dist/types/src/styles/index.d.ts.map +1 -0
  155. package/dist/types/src/styles/theme.d.ts +5 -0
  156. package/dist/types/src/styles/theme.d.ts.map +1 -0
  157. package/dist/types/src/tailwind.d.ts +3 -0
  158. package/dist/types/src/tailwind.d.ts.map +1 -0
  159. package/dist/types/src/types.d.ts +3 -0
  160. package/dist/types/src/types.d.ts.map +1 -0
  161. package/dist/types/src/util/hash-styles.d.ts +15 -0
  162. package/dist/types/src/util/hash-styles.d.ts.map +1 -0
  163. package/dist/types/src/util/index.d.ts +3 -0
  164. package/dist/types/src/util/index.d.ts.map +1 -0
  165. package/dist/types/src/util/mx.d.ts +2 -0
  166. package/dist/types/src/util/mx.d.ts.map +1 -0
  167. package/dist/types/src/util/withLogical.d.ts +164 -0
  168. package/dist/types/src/util/withLogical.d.ts.map +1 -0
  169. package/dist/types/tsconfig.tsbuildinfo +1 -0
  170. package/package.json +9 -5
  171. package/src/config/index.ts +1 -1
  172. package/src/config/tailwind.ts +78 -64
  173. package/src/config/tokens/lengths.ts +6 -6
  174. package/src/config/tokens/sizes.ts +5 -2
  175. package/src/index.ts +1 -1
  176. package/src/styles/components/dialog.ts +19 -3
  177. package/src/styles/fragments/motion.ts +1 -1
  178. package/src/styles/layers/dialog.css +53 -18
  179. package/src/styles/layers/size.css +19 -12
  180. package/src/styles/layers/typography.css +22 -2
  181. package/src/tailwind.ts +3 -1
@@ -36,13 +36,14 @@ export const tailwindConfig = ({
36
36
  },
37
37
  extend: merge(
38
38
  {
39
+ // Generates is-card-default-width, is-card-min-width, etc.
39
40
  spacing: {
40
- prose: 'var(--dx-prose)',
41
- containerMaxWidth: 'var(--dx-containerMaxWidth)',
42
- cardDefaultWidth: 'var(--dx-cardDefaultWidth)',
43
- cardMinWidth: 'var(--dx-cardMinWidth)',
44
- cardMaxWidth: 'var(--dx-cardMaxWidth)',
45
- popoverMaxWidth: 'var(--dx-popoverMaxWidth)',
41
+ 'card-default-width': 'var(--dx-card-default-width)',
42
+ 'card-min-width': 'var(--dx-card-min-width)',
43
+ 'card-max-width': 'var(--dx-card-max-width)',
44
+ 'container-max-width': 'var(--dx-container-max-width)',
45
+ 'popover-max-width': 'var(--dx-popover-max-width)',
46
+ 'prose-max-width': 'var(--dx-prose-max-width)',
46
47
  },
47
48
  backgroundImage: {
48
49
  'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
@@ -52,23 +53,23 @@ export const tailwindConfig = ({
52
53
  none: '0',
53
54
  sm: '0.25rem',
54
55
  DEFAULT: '0.5rem',
55
- md: '.75rem',
56
+ md: '0.75rem',
56
57
  lg: '1rem',
57
58
  },
58
59
  screens: {
59
60
  'pointer-fine': { raw: '(pointer: fine)' },
60
61
  'hover-hover': { raw: '(hover: hover)' },
61
- md: '768px',
62
- lg: '1024px',
62
+ 'md': '768px',
63
+ 'lg': '1024px',
63
64
  },
64
65
  fontSize: {
65
66
  // Base size 16px
66
67
  // Scale 1.125
67
- xs: ['0.790rem', { lineHeight: '1rem' }],
68
- sm: ['0.889rem', { lineHeight: '1.25rem' }],
69
- base: ['1rem', { lineHeight: '1.5rem' }],
70
- lg: ['1.125rem', { lineHeight: '1.75rem' }],
71
- xl: ['1.266rem', { lineHeight: '1.75rem' }],
68
+ 'xs': ['0.790rem', { lineHeight: '1rem' }],
69
+ 'sm': ['0.889rem', { lineHeight: '1.25rem' }],
70
+ 'base': ['1rem', { lineHeight: '1.5rem' }],
71
+ 'lg': ['1.125rem', { lineHeight: '1.75rem' }],
72
+ 'xl': ['1.266rem', { lineHeight: '1.75rem' }],
72
73
  '2xl': ['1.424rem', { lineHeight: '2rem' }],
73
74
  '3xl': ['1.602rem', { lineHeight: '2.25rem' }],
74
75
  '4xl': ['1.802rem', { lineHeight: '2.5rem' }],
@@ -79,46 +80,42 @@ export const tailwindConfig = ({
79
80
  '9xl': ['3.247rem', { lineHeight: '3.25rem' }],
80
81
  },
81
82
  boxShadow: {
82
- slider: '0 0 0 5px rgba(0, 0, 0, 0.3)',
83
+ 'slider': '0 0 0 5px rgba(0, 0, 0, 0.3)',
83
84
  },
84
85
  transitionProperty: {
85
86
  'max-height': 'max-height',
86
87
  },
87
88
  transitionTimingFunction: {
88
- 'in-out-symmetric': 'cubic-bezier(0.5,0,0.5,1)',
89
+ 'in-out-symmetric': 'cubic-bezier(0.5, 0, 0.5, 1)',
89
90
  },
90
91
  keyframes: {
92
+ // Fade
93
+ 'fade-in': {
94
+ from: { opacity: 0 },
95
+ to: { opacity: 1 },
96
+ },
97
+ 'fade-out': {
98
+ from: { opacity: 1 },
99
+ to: { opacity: 0 },
100
+ },
101
+
91
102
  // Popper chrome
92
- slideDownAndFade: {
93
- from: { opacity: 0, transform: 'translateY(-2px)' },
94
- to: { opacity: 1, transform: 'translateY(0)' },
103
+ 'slide-down-and-fade': {
104
+ from: { opacity: 1, transform: 'translateY(0)' },
105
+ to: { opacity: 0, transform: 'translateY(16px)' },
95
106
  },
96
- slideLeftAndFade: {
97
- from: { opacity: 0, transform: 'translateX(2px)' },
107
+ 'slide-left-and-fade': {
108
+ from: { opacity: 0, transform: 'translateX(-16px)' },
98
109
  to: { opacity: 1, transform: 'translateX(0)' },
99
110
  },
100
- slideUpAndFade: {
101
- from: { opacity: 0, transform: 'translateY(2px)' },
111
+ 'slide-up-and-fade': {
112
+ from: { opacity: 0, transform: 'translateY(16px)' },
102
113
  to: { opacity: 1, transform: 'translateY(0)' },
103
114
  },
104
- slideRightAndFade: {
105
- from: { opacity: 0, transform: 'translateX(-2px)' },
115
+ 'slide-right-and-fade': {
116
+ from: { opacity: 0, transform: 'translateX(16px)' },
106
117
  to: { opacity: 1, transform: 'translateX(0)' },
107
118
  },
108
- fadeIn: {
109
- from: { opacity: 0 },
110
- to: { opacity: 1 },
111
- },
112
-
113
- // Accordion
114
- slideDown: {
115
- from: { height: '0px' },
116
- to: { height: 'var(--radix-accordion-content-height)' },
117
- },
118
- slideUp: {
119
- from: { height: 'var(--radix-accordion-content-height)' },
120
- to: { height: '0px' },
121
- },
122
119
 
123
120
  // Toast
124
121
  'toast-hide': {
@@ -142,6 +139,16 @@ export const tailwindConfig = ({
142
139
  },
143
140
  },
144
141
 
142
+ // Accordion
143
+ 'slide-down': {
144
+ from: { height: '0px' },
145
+ to: { height: 'var(--radix-accordion-content-height)' },
146
+ },
147
+ 'slide-up': {
148
+ from: { height: 'var(--radix-accordion-content-height)' },
149
+ to: { height: '0px' },
150
+ },
151
+
145
152
  // Shimmer
146
153
  'shimmer-loop': {
147
154
  '100%': {
@@ -149,6 +156,7 @@ export const tailwindConfig = ({
149
156
  },
150
157
  },
151
158
 
159
+ // HALO
152
160
  'halo-pulse': {
153
161
  '0%': {
154
162
  opacity: 0.3,
@@ -161,6 +169,7 @@ export const tailwindConfig = ({
161
169
  },
162
170
  },
163
171
 
172
+ // Progress
164
173
  'progress-indeterminate': {
165
174
  '0%': {
166
175
  left: 0,
@@ -180,45 +189,47 @@ export const tailwindConfig = ({
180
189
  },
181
190
  },
182
191
 
183
- // Border trail
184
- ['trail']: {
192
+ // Border trail effect
193
+ 'trail': {
185
194
  to: { 'offset-distance': '100%' },
186
195
  },
187
- ['trail-offset']: {
196
+ 'trail-offset': {
188
197
  '0%': { 'offset-distance': '50%' },
189
198
  '100%': { 'offset-distance': '150%' },
190
199
  },
191
200
  },
192
201
  animation: {
193
- ['fade-in']: 'fadeIn 100ms ease-in forwards',
194
-
195
- // Border trail
196
- ['trail']: 'trail 6s linear infinite',
197
- ['trail-offset']: 'trail-offset 6s linear infinite',
202
+ // Fade
203
+ 'fade-in': 'fade-in 200ms ease-out',
204
+ 'fade-out': 'fade-out 400ms ease-out',
198
205
 
199
206
  // Popper chrome
200
- ['slideDownAndFade']: 'slideDownAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)',
201
- ['slideLeftAndFade']: 'slideLeftAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)',
202
- ['slideUpAndFade']: 'slideUpAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)',
203
- ['slideRightAndFade']: 'slideRightAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)',
207
+ 'slide-down-and-fade': 'slide-down-and-fade 400ms cubic-bezier(0.16, 1, 0.3, 1)',
208
+ 'slide-left-and-fade': 'slide-left-and-fade 400ms cubic-bezier(0.16, 1, 0.3, 1)',
209
+ 'slide-up-and-fade': 'slide-up-and-fade 400ms cubic-bezier(0.16, 1, 0.3, 1)',
210
+ 'slide-right-and-fade': 'slide-right-and-fade 400ms cubic-bezier(0.16, 1, 0.3, 1)',
204
211
 
205
212
  // Toast
206
- ['toast-hide']: 'toast-hide 100ms ease-in forwards',
207
- ['toast-slide-in-right']: 'toast-slide-in-right 150ms cubic-bezier(0.16, 1, 0.3, 1)',
208
- ['toast-slide-in-bottom']: 'toast-slide-in-bottom 150ms cubic-bezier(0.16, 1, 0.3, 1)',
209
- ['toast-swipe-out']: 'toast-swipe-out 100ms ease-out forwards',
213
+ 'toast-hide': 'toast-hide 100ms ease-in forwards',
214
+ 'toast-slide-in-right': 'toast-slide-in-right 150ms cubic-bezier(0.16, 1, 0.3, 1)',
215
+ 'toast-slide-in-bottom': 'toast-slide-in-bottom 150ms cubic-bezier(0.16, 1, 0.3, 1)',
216
+ 'toast-swipe-out': 'toast-swipe-out 100ms ease-out forwards',
210
217
 
211
218
  // Accordion
212
- ['slideDown']: 'slideDown 300ms cubic-bezier(0.87, 0, 0.13, 1)',
213
- ['slideUp']: 'slideUp 300ms cubic-bezier(0.87, 0, 0.13, 1)',
219
+ 'slide-down': 'slide-down 300ms cubic-bezier(0.87, 0, 0.13, 1)',
220
+ 'slide-up': 'slide-up 300ms cubic-bezier(0.87, 0, 0.13, 1)',
214
221
 
215
- ['spin']: 'spin 1.5s linear infinite',
216
- ['spin-slow']: 'spin 3s linear infinite',
222
+ // Border trail effect
223
+ 'trail': 'trail 6s linear infinite',
224
+ 'trail-offset': 'trail-offset 6s linear infinite',
217
225
 
218
- ['shimmer']: 'shimmer-loop 2s infinite',
219
- ['halo-pulse']: 'halo-pulse 2s ease-out infinite',
220
- ['progress-indeterminate']: 'progress-indeterminate 2s ease-out infinite',
221
- ['progress-linear']: 'progress-linear 2s ease-out infinite',
226
+ // Progress effects
227
+ 'spin': 'spin 1.5s linear infinite',
228
+ 'spin-slow': 'spin 3s linear infinite',
229
+ 'shimmer': 'shimmer-loop 2s infinite',
230
+ 'halo-pulse': 'halo-pulse 2s ease-out infinite',
231
+ 'progress-indeterminate': 'progress-indeterminate 2s ease-out infinite',
232
+ 'progress-linear': 'progress-linear 2s ease-out infinite',
222
233
  },
223
234
  },
224
235
  extendTokens,
@@ -240,7 +251,10 @@ export const tailwindConfig = ({
240
251
  tailwindcssLogical,
241
252
  tailwindcssRadix(),
242
253
  // https://adoxography.github.io/tailwind-scrollbar/utilities
243
- tailwindScrollbar,
254
+ tailwindScrollbar({
255
+ nocompatible: true,
256
+ preferredStrategy: 'pseudoelements',
257
+ }),
244
258
  ],
245
259
  ...(env === 'development' && { mode: 'jit' }),
246
260
  content,
@@ -86,12 +86,12 @@ export const maxSizesFacet = {
86
86
  namespace: 'dx-',
87
87
  conditions: { root: [':root'] },
88
88
  sememes: {
89
- prose: { root: ['size', 50] },
90
- containerMaxWidth: { root: ['size', 50] },
91
- popoverMaxWidth: { root: ['size', cardDefaultInlineSize] },
92
- cardDefaultWidth: { root: ['size', cardDefaultInlineSize] },
93
- cardMinWidth: { root: ['size', cardMinInlineSize] },
94
- cardMaxWidth: { root: ['size', cardMaxInlineSize] },
89
+ 'prose-max-width': { root: ['size', 50] },
90
+ 'container-max-width': { root: ['size', 50] },
91
+ 'popover-max-width': { root: ['size', cardDefaultInlineSize] },
92
+ 'card-default-width': { root: ['size', cardDefaultInlineSize] },
93
+ 'card-min-width': { root: ['size', cardMinInlineSize] },
94
+ 'card-max-width': { root: ['size', cardMaxInlineSize] },
95
95
  },
96
96
  },
97
97
  } satisfies Facet;
@@ -2,6 +2,9 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ /**
6
+ * Cards should be no larger than 320px per WCAG 2.1 SC 1.4.10.
7
+ */
5
8
  export const cardMinInlineSize = 18;
6
- export const cardDefaultInlineSize = 20;
7
- export const cardMaxInlineSize = 25;
9
+ export const cardDefaultInlineSize = 20; // 320px
10
+ export const cardMaxInlineSize = 22;
package/src/index.ts CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { type TailwindConfig, tailwindConfig } from './config';
6
6
 
7
- export { cardMinInlineSize, cardMaxInlineSize, hues, userDefaultTokenSet } from './config';
7
+ export { cardDefaultInlineSize, cardMinInlineSize, cardMaxInlineSize, hues, userDefaultTokenSet } from './config';
8
8
  export * from './styles';
9
9
  export * from './types';
10
10
  export * from './util';
@@ -7,20 +7,35 @@ import { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-typ
7
7
  import { mx } from '../../util';
8
8
  import { descriptionText } from '../fragments';
9
9
 
10
+ export type DialogSize = 'sm' | 'md' | 'lg' | 'xl';
11
+
12
+ const sizeMap: Record<DialogSize, string> = {
13
+ sm: 'md:!max-is-[24rem]',
14
+ md: 'md:!max-is-[32rem]',
15
+ lg: 'md:!max-is-[40rem]',
16
+ xl: 'md:!max-is-[60rem]',
17
+ };
18
+
10
19
  export type DialogStyleProps = {
11
20
  srOnly?: boolean;
12
21
  inOverlayLayout?: boolean;
13
22
  elevation?: Elevation;
23
+ size?: DialogSize;
14
24
  };
15
25
 
16
26
  export const dialogOverlay: ComponentFunction<DialogStyleProps> = (_props, ...etc) => mx('dx-dialog__overlay', ...etc);
17
27
 
18
- export const dialogContent: ComponentFunction<DialogStyleProps> = ({ inOverlayLayout }, ...etc) =>
19
- mx(
20
- '@container dx-dialog__content dx-focus-ring modal-surface density-coarse',
28
+ export const dialogContent: ComponentFunction<DialogStyleProps> = ({ inOverlayLayout, size }, ...etc) => {
29
+ return mx(
30
+ '@container dx-dialog__content dx-focus-ring modal-surface density-coarse is-full gap-2',
21
31
  !inOverlayLayout && 'fixed z-50 top-[50%] left-[50%] -translate-x-[50%] -translate-y-[50%]',
32
+ size && sizeMap[size],
22
33
  ...etc,
23
34
  );
35
+ };
36
+
37
+ export const dialogHeader: ComponentFunction<DialogStyleProps> = (_props, ...etc) =>
38
+ mx('dx-dialog__header flex items-center justify-between', ...etc);
24
39
 
25
40
  export const dialogTitle: ComponentFunction<DialogStyleProps> = ({ srOnly }, ...etc) =>
26
41
  mx('dx-dialog__title', srOnly && 'sr-only', ...etc);
@@ -31,6 +46,7 @@ export const dialogDescription: ComponentFunction<DialogStyleProps> = ({ srOnly
31
46
  export const dialogTheme: Theme<DialogStyleProps> = {
32
47
  overlay: dialogOverlay,
33
48
  content: dialogContent,
49
+ header: dialogHeader,
34
50
  title: dialogTitle,
35
51
  description: dialogDescription,
36
52
  };
@@ -3,4 +3,4 @@
3
3
  //
4
4
 
5
5
  export const popperMotion =
6
- 'will-change-[opacity,transform] data-[side=top]:animate-slideDownAndFade data-[side=right]:animate-slideLeftAndFade data-[side=bottom]:animate-slideUpAndFade data-[side=left]:animate-slideRightAndFade';
6
+ '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';
@@ -1,42 +1,77 @@
1
1
  @layer dx-components {
2
2
  .dx-dialog__overlay {
3
- @apply fixed z-50 inset-inline-0 block-start-0 bs-dvh bg-scrimSurface overflow-auto grid place-items-center pbs-[env(safe-area-inset-top)];
4
- @media (min-width: theme('screens.sm')) {
5
- @apply p-[calc(env(safe-area-inset-top)+.6rem)];
3
+ @apply z-50 fixed grid inset-inline-0 block-start-0 bs-dvh pbs-[env(safe-area-inset-top)] place-items-center overflow-auto bg-scrimSurface;
4
+
5
+ &[data-state='open'] {
6
+ @apply animate-fade-in;
6
7
  }
7
- @media (min-width: theme('screens.md')) {
8
- @apply p-[calc(env(safe-area-inset-top)+1.2rem)];
8
+
9
+ &[data-state='closed'] {
10
+ @apply animate-fade-out;
9
11
  }
10
- @media (min-width: theme('screens.lg')) {
11
- @apply p-[calc(env(safe-area-inset-top)+2.4rem)];
12
- }
13
- &[data-block-align="start"]{
12
+
13
+ &[data-block-align='start'] {
14
14
  align-items: start;
15
15
  justify-items: center;
16
16
  }
17
- &[data-block-align="center"]{
17
+
18
+ &[data-block-align='center'] {
18
19
  place-items: center;
19
20
  }
20
- &[data-block-align="end"]{
21
+
22
+ &[data-block-align='end'] {
21
23
  align-items: end;
22
24
  justify-items: center;
23
25
  }
24
26
  }
27
+
28
+ @media (min-width: theme('screens.sm')) {
29
+ .dx-dialog__overlay {
30
+ @apply p-[calc(env(safe-area-inset-top)+.6rem)];
31
+ }
32
+ }
33
+
34
+ @media (min-width: theme('screens.md')) {
35
+ .dx-dialog__overlay {
36
+ @apply p-[calc(env(safe-area-inset-top)+1.2rem)];
37
+ }
38
+ }
39
+
40
+ @media (min-width: theme('screens.lg')) {
41
+ .dx-dialog__overlay {
42
+ @apply p-[calc(env(safe-area-inset-top)+2.4rem)];
43
+ }
44
+ }
45
+
25
46
  .dx-dialog__content {
26
- /* TODO(thure): `flex` should not be default. */
27
- @apply flex flex-col is-dvw max-is-full p-4 animate-slideUpAndFade shadow-md backdrop-blur;
28
- will-change: opacity, transform;
29
- @media (min-width: theme('screens.sm')) {
47
+ @apply flex flex-col is-dvw max-is-full p-4 shadow-md backdrop-blur;
48
+
49
+ &[data-state='open'] {
50
+ @apply animate-slide-up-and-fade;
51
+ }
52
+
53
+ &[data-state='closed'] {
54
+ @apply animate-slide-down-and-fade;
55
+ }
56
+ }
57
+
58
+ @media (min-width: theme('screens.sm')) {
59
+ .dx-dialog__content {
30
60
  @apply is-[95vw] border rounded-md border-separator;
31
61
  }
32
- @media (min-width: theme('screens.md')) {
62
+ }
63
+
64
+ @media (min-width: theme('screens.md')) {
65
+ .dx-dialog__content {
33
66
  @apply max-is-[24rem];
34
67
  }
35
68
  }
69
+
36
70
  .dx-dialog__title {
37
- @apply rounded shrink-0 text-xl font-medium;
71
+ @apply shrink-0 text-xl font-medium;
38
72
  }
73
+
39
74
  .dx-dialog__description {
40
75
  @apply mlb-2;
41
76
  }
42
- }
77
+ }
@@ -2,24 +2,35 @@
2
2
  * @layer dx-components
3
3
  */
4
4
 
5
+ /**
6
+ * Container query root.
7
+ */
8
+ .size-container {
9
+ container-type: size;
10
+ }
11
+
5
12
  .container-max-width {
6
- @apply is-full max-is-containerMaxWidth mli-auto;
13
+ @apply is-full max-is-container-max-width mli-auto;
14
+ }
15
+
16
+ .card-default-width {
17
+ @apply is-card-default-width;
7
18
  }
8
19
 
9
20
  .card-min-width {
10
- @apply min-is-cardMinWidth;
21
+ @apply min-is-card-min-width;
11
22
  }
12
23
 
13
24
  .card-max-width {
14
- @apply is-full max-is-cardMaxWidth;
25
+ @apply is-full max-is-card-max-width;
15
26
  }
16
27
 
17
28
  .popover-max-width {
18
- @apply is-max max-is-popoverMaxWidth;
29
+ @apply is-max max-is-popover-max-width;
19
30
  }
20
31
 
21
32
  .popover-card-width {
22
- inline-size: min(var(--radix-popper-available-width), calc(var(--dx-popoverMaxWidth) - 2 * var(--dx-hairLine)));
33
+ inline-size: min(var(--radix-popper-available-width), calc(var(--dx-popover-max-width) - 2 * var(--dx-hairLine)));
23
34
  }
24
35
 
25
36
  .popover-card-height {
@@ -27,18 +38,14 @@
27
38
  }
28
39
 
29
40
  .popover-square {
30
- inline-size: min(min(var(--radix-popper-available-width), var(--dx-popoverMaxWidth)),
41
+ inline-size: min(min(var(--radix-popper-available-width), var(--dx-popover-max-width)),
31
42
  min(var(--radix-popper-available-height), 100dvh));
32
- block-size: min(min(var(--radix-popper-available-width), var(--dx-popoverMaxWidth)),
43
+ block-size: min(min(var(--radix-popper-available-width), var(--dx-popover-max-width)),
33
44
  min(var(--radix-popper-available-height), 100dvh));
34
45
  }
35
46
 
36
47
  .popover-card-max-width {
37
- max-inline-size: min(var(--radix-popper-available-width), var(--dx-popoverMaxWidth));
38
- }
39
-
40
- .size-container {
41
- container-type: size;
48
+ max-inline-size: min(var(--radix-popper-available-width), var(--dx-popover-max-width));
42
49
  }
43
50
 
44
51
  @layer dx-components {
@@ -4,16 +4,18 @@
4
4
 
5
5
  @import '@fontsource-variable/jetbrains-mono/wght-italic.css';
6
6
  @import '@fontsource-variable/jetbrains-mono/wght.css';
7
- @import '@fontsource-variable/inter/slnt.css';
7
+ /* @import '@fontsource-variable/inter/slnt.css'; */
8
8
  @import '@fontsource/poiret-one';
9
9
 
10
10
  @layer utilities {
11
+
11
12
  /* Font weights & `italic` handling */
12
13
  .not-italic {
13
14
  font-variation-settings:
14
15
  'wght' 400,
15
16
  'slnt' 0;
16
17
  }
18
+
17
19
  .font-thin,
18
20
  .not-italic.font-thin,
19
21
  .not-italic .font-thin,
@@ -22,6 +24,7 @@
22
24
  'wght' 100,
23
25
  'slnt' 0;
24
26
  }
27
+
25
28
  .font-extralight,
26
29
  .not-italic.font-extralight,
27
30
  .not-italic .font-extralight,
@@ -30,6 +33,7 @@
30
33
  'wght' 200,
31
34
  'slnt' 0;
32
35
  }
36
+
33
37
  .font-light,
34
38
  .not-italic.font-light,
35
39
  .not-italic .font-light,
@@ -38,6 +42,7 @@
38
42
  'wght' 300,
39
43
  'slnt' 0;
40
44
  }
45
+
41
46
  .font-normal,
42
47
  .not-italic.font-normal,
43
48
  .not-italic .font-normal,
@@ -46,6 +51,7 @@
46
51
  'wght' 400,
47
52
  'slnt' 0;
48
53
  }
54
+
49
55
  .font-medium,
50
56
  .not-italic.font-medium,
51
57
  .not-italic .font-medium,
@@ -54,6 +60,7 @@
54
60
  'wght' 500,
55
61
  'slnt' 0;
56
62
  }
63
+
57
64
  .font-semibold,
58
65
  .not-italic.font-semibold,
59
66
  .not-italic .font-semibold,
@@ -62,6 +69,7 @@
62
69
  'wght' 600,
63
70
  'slnt' 0;
64
71
  }
72
+
65
73
  .font-bold,
66
74
  .not-italic.font-bold,
67
75
  .not-italic .font-bold,
@@ -70,6 +78,7 @@
70
78
  'wght' 700,
71
79
  'slnt' 0;
72
80
  }
81
+
73
82
  .font-extrabold,
74
83
  .not-italic.font-extrabold,
75
84
  .not-italic .font-extrabold,
@@ -78,6 +87,7 @@
78
87
  'wght' 800,
79
88
  'slnt' 0;
80
89
  }
90
+
81
91
  .font-black,
82
92
  .not-italic.font-black,
83
93
  .not-italic .font-black,
@@ -86,11 +96,13 @@
86
96
  'wght' 900,
87
97
  'slnt' 0;
88
98
  }
99
+
89
100
  .italic {
90
101
  font-variation-settings:
91
102
  'wght' 400,
92
103
  'slnt' -10;
93
104
  }
105
+
94
106
  .italic.font-thin,
95
107
  .italic .font-thin,
96
108
  .font-thin .italic {
@@ -98,6 +110,7 @@
98
110
  'wght' 100,
99
111
  'slnt' -10;
100
112
  }
113
+
101
114
  .italic.font-extralight,
102
115
  .italic .font-extralight,
103
116
  .font-extralight .italic {
@@ -105,6 +118,7 @@
105
118
  'wght' 200,
106
119
  'slnt' -10;
107
120
  }
121
+
108
122
  .italic.font-light,
109
123
  .italic .font-light,
110
124
  .font-light .italic {
@@ -112,6 +126,7 @@
112
126
  'wght' 300,
113
127
  'slnt' -10;
114
128
  }
129
+
115
130
  .italic.font-normal,
116
131
  .italic .font-normal,
117
132
  .font-normal .italic {
@@ -119,6 +134,7 @@
119
134
  'wght' 400,
120
135
  'slnt' -10;
121
136
  }
137
+
122
138
  .italic.font-medium,
123
139
  .italic .font-medium,
124
140
  .font-medium .italic {
@@ -126,6 +142,7 @@
126
142
  'wght' 500,
127
143
  'slnt' -10;
128
144
  }
145
+
129
146
  .italic.font-semibold,
130
147
  .italic .font-semibold,
131
148
  .font-semibold .italic {
@@ -133,6 +150,7 @@
133
150
  'wght' 600,
134
151
  'slnt' -10;
135
152
  }
153
+
136
154
  .italic.font-bold,
137
155
  .italic .font-bold,
138
156
  .font-bold .italic {
@@ -140,6 +158,7 @@
140
158
  'wght' 700,
141
159
  'slnt' -10;
142
160
  }
161
+
143
162
  .italic.font-extrabold,
144
163
  .italic .font-extrabold,
145
164
  .font-extrabold .italic {
@@ -147,6 +166,7 @@
147
166
  'wght' 800,
148
167
  'slnt' -10;
149
168
  }
169
+
150
170
  .italic.font-black,
151
171
  .italic .font-black,
152
172
  .font-black .italic {
@@ -154,4 +174,4 @@
154
174
  'wght' 900,
155
175
  'slnt' -10;
156
176
  }
157
- }
177
+ }
package/src/tailwind.ts CHANGED
@@ -2,4 +2,6 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- // Empty for vscode tooling.
5
+ import { tailwindConfig } from './config';
6
+
7
+ export default tailwindConfig({ content: ['./src/**/*.{ts,tsx}'] });