@shuriken-ui/tailwind 0.0.4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
package/dist/preset.cjs CHANGED
@@ -4,6 +4,7 @@ const defaultTheme = require('tailwindcss/defaultTheme');
4
4
  const colors = require('tailwindcss/colors');
5
5
  const typography = require('@tailwindcss/typography');
6
6
  const aspectRatio = require('@tailwindcss/aspect-ratio');
7
+ const containerQueries = require('@tailwindcss/container-queries');
7
8
  const plugin = require('tailwindcss/plugin');
8
9
  const defu = require('defu');
9
10
 
@@ -13,40 +14,153 @@ const defaultTheme__default = /*#__PURE__*/_interopDefaultCompat(defaultTheme);
13
14
  const colors__default = /*#__PURE__*/_interopDefaultCompat(colors);
14
15
  const typography__default = /*#__PURE__*/_interopDefaultCompat(typography);
15
16
  const aspectRatio__default = /*#__PURE__*/_interopDefaultCompat(aspectRatio);
17
+ const containerQueries__default = /*#__PURE__*/_interopDefaultCompat(containerQueries);
16
18
  const plugin__default = /*#__PURE__*/_interopDefaultCompat(plugin);
17
19
 
20
+ const shurikenUIBase = plugin__default(function({ addBase }) {
21
+ addBase({
22
+ ".dark": { colorScheme: "dark" }
23
+ });
24
+ });
25
+
18
26
  const defaultPluginOptions = {
19
27
  prefix: "nui"
20
28
  };
21
- const shurikenUIComponents = plugin__default.withOptions(
29
+
30
+ const defaultDropdownDividerConfig = {
31
+ space: "2",
32
+ border: "muted-200",
33
+ borderDark: "muted-600"
34
+ };
35
+ const dropdown = plugin__default.withOptions(
22
36
  function(options) {
23
37
  const { prefix } = defu.defu(options, defaultPluginOptions);
24
- return function({ addComponents }) {
38
+ return function({ addComponents, theme }) {
39
+ const config = theme(
40
+ "shurikenUi.dropdownDivider"
41
+ );
25
42
  addComponents({
26
- [`.${prefix}-placeload`]: {
27
- position: "relative",
28
- background: "linear-gradient( to right, rgb(0 0 0 / 7%) 8% ,rgb(0 0 0 / 15%) 18%, rgb(0 0 0 / 7%) 33%)",
29
- backgroundSize: "1200px 104px"
30
- },
31
- [`.dark .${prefix}-placeload`]: {
32
- position: "relative",
33
- background: "linear-gradient(to right, rgb(255 255 255 / 15%) 8%, rgb(255 255 255 / 24%) 18%, rgb(255 255 255 / 15%) 33%)",
34
- backgroundSize: "1200px 104px"
43
+ [`.${prefix}-dropdown-divider`]: {
44
+ [`@apply my-${config.space} block h-px w-full border-t border-${config.border} dark:border-${config.borderDark}`]: {}
35
45
  }
36
46
  });
47
+ };
48
+ },
49
+ function() {
50
+ return {
51
+ theme: {
52
+ shurikenUi: {
53
+ dropdownDivider: defaultDropdownDividerConfig
54
+ }
55
+ }
56
+ };
57
+ }
58
+ );
59
+
60
+ const defaultFocusConfig = {
61
+ offset: "2",
62
+ width: "1",
63
+ style: "dashed",
64
+ color: "muted-300",
65
+ colorDark: "muted-600"
66
+ };
67
+ const focus = plugin__default.withOptions(
68
+ function(options) {
69
+ const { prefix } = defu.defu(options, defaultPluginOptions);
70
+ return function({ addComponents, theme }) {
71
+ const config = theme(
72
+ "shurikenUi.focus"
73
+ );
37
74
  addComponents({
38
75
  [`.${prefix}-focus`]: {
39
- "@apply outline-1 outline-dashed outline-offset-2": {},
76
+ [`@apply outline-${config.width} outline-${config.style} outline-offset-${config.offset}`]: {},
40
77
  "@apply outline-transparent": {},
41
78
  "&:focus-within": {
42
- "@apply outline-muted-300 dark:outline-muted-600": {},
43
- "@apply outline-dashed ring-0": {}
79
+ [`@apply outline-${config.color} dark:outline-${config.colorDark}`]: {},
80
+ [`@apply outline-${config.style} ring-0`]: {}
44
81
  },
45
82
  "&:focus-visible": {
46
- "@apply outline-2": {}
83
+ [`@apply outline-${config.width}`]: {}
47
84
  }
48
85
  }
49
86
  });
87
+ };
88
+ },
89
+ function() {
90
+ return {
91
+ theme: {
92
+ shurikenUi: {
93
+ focus: defaultFocusConfig
94
+ }
95
+ }
96
+ };
97
+ }
98
+ );
99
+
100
+ const defaultLabelConfig = {
101
+ font: "alt",
102
+ text: "muted-400",
103
+ textDark: "muted-400/80"
104
+ };
105
+ const label = plugin__default.withOptions(
106
+ function(options) {
107
+ const { prefix } = defu.defu(options, defaultPluginOptions);
108
+ return function({ addComponents, theme }) {
109
+ const config = theme(
110
+ "shurikenUi.label"
111
+ );
112
+ addComponents({
113
+ [`.${prefix}-label`]: {
114
+ [`@apply inline-block font-${config.font} leading-none text-${config.text} dark:text-${config.textDark}`]: {}
115
+ }
116
+ });
117
+ };
118
+ },
119
+ function() {
120
+ return {
121
+ theme: {
122
+ shurikenUi: {
123
+ label: defaultLabelConfig
124
+ }
125
+ }
126
+ };
127
+ }
128
+ );
129
+
130
+ const defaultMarkConfig = {
131
+ bg: "primary-100",
132
+ bgDark: "primary-800",
133
+ text: "primary-800",
134
+ textDark: "primary-200"
135
+ };
136
+ const mark = plugin__default.withOptions(
137
+ function(options) {
138
+ const { prefix } = defu.defu(options, defaultPluginOptions);
139
+ return function({ addComponents, theme }) {
140
+ const config = theme("shurikenUi.mark");
141
+ addComponents({
142
+ [`.${prefix}-mark`]: {
143
+ [`@apply bg-${config.bg} dark:bg-${config.bgDark}`]: {},
144
+ [`@apply text-${config.text} dark:text-${config.textDark}`]: {}
145
+ }
146
+ });
147
+ };
148
+ },
149
+ function() {
150
+ return {
151
+ theme: {
152
+ shurikenUi: {
153
+ mark: defaultMarkConfig
154
+ }
155
+ }
156
+ };
157
+ }
158
+ );
159
+
160
+ const mask = plugin__default.withOptions(
161
+ function(options) {
162
+ const { prefix } = defu.defu(options, defaultPluginOptions);
163
+ return function({ addComponents }) {
50
164
  addComponents({
51
165
  [`.${prefix}-mask`]: {
52
166
  "mask-size": "contain",
@@ -69,50 +183,329 @@ const shurikenUIComponents = plugin__default.withOptions(
69
183
  "mask-image": "url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTAwIDBsMTAwIDEwMC0xMDAgMTAwTDAgMTAweiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+')"
70
184
  }
71
185
  });
186
+ };
187
+ },
188
+ function() {
189
+ return {};
190
+ }
191
+ );
192
+
193
+ const placeload = plugin__default.withOptions(
194
+ function(options) {
195
+ const { prefix } = defu.defu(options, defaultPluginOptions);
196
+ return function({ addComponents }) {
72
197
  addComponents({
73
- [`.${prefix}-text-white`]: {
74
- "@apply text-white dark:text-black": {}
75
- },
76
- [`.${prefix}-text-50`]: {
77
- "@apply text-muted-50 dark:text-muted-900": {}
78
- },
79
- [`.${prefix}-text-100`]: {
80
- "@apply text-muted-100 dark:text-muted-900": {}
81
- },
82
- [`.${prefix}-text-200`]: {
83
- "@apply text-muted-200 dark:text-muted-800": {}
84
- },
85
- [`.${prefix}-text-300`]: {
86
- "@apply text-muted-300 dark:text-muted-700": {}
87
- },
88
- [`.${prefix}-text-400`]: {
89
- "@apply text-muted-400 dark:text-muted-600": {}
90
- },
91
- [`.${prefix}-text-500`]: {
92
- "@apply text-muted-500 dark:text-muted-500": {}
198
+ [`.${prefix}-placeload`]: {
199
+ position: "relative",
200
+ background: "linear-gradient( to right, rgb(0 0 0 / 7%) 8% ,rgb(0 0 0 / 15%) 18%, rgb(0 0 0 / 7%) 33%)",
201
+ backgroundSize: "1200px 104px"
93
202
  },
94
- [`.${prefix}-text-600`]: {
95
- "@apply text-muted-600 dark:text-muted-400": {}
203
+ [`.dark .${prefix}-placeload`]: {
204
+ position: "relative",
205
+ background: "linear-gradient(to right, rgb(255 255 255 / 15%) 8%, rgb(255 255 255 / 24%) 18%, rgb(255 255 255 / 15%) 33%)",
206
+ backgroundSize: "1200px 104px"
207
+ }
208
+ });
209
+ };
210
+ },
211
+ function(options) {
212
+ const { prefix } = defu.defu(options, defaultPluginOptions);
213
+ return {
214
+ theme: {
215
+ keyframes: {
216
+ [`${prefix}-placeload`]: {
217
+ "0%": { "background-position": "-468px 0" },
218
+ "100%": { "background-position": "468px 0" }
219
+ }
96
220
  },
97
- [`.${prefix}-text-700`]: {
98
- "@apply text-muted-700 dark:text-muted-300": {}
221
+ animation: {
222
+ [`${prefix}-placeload`]: `${prefix}-placeload 1s linear infinite forwards`
223
+ }
224
+ }
225
+ };
226
+ }
227
+ );
228
+
229
+ const defaultSlimscrollConfig = {
230
+ width: "[6px]",
231
+ bg: "black/5",
232
+ bgDark: "white/5",
233
+ bgHover: "black/20",
234
+ bgHoverDark: "white/20"
235
+ };
236
+ const slimscroll = plugin__default.withOptions(
237
+ function(options) {
238
+ const { prefix } = defu.defu(options, defaultPluginOptions);
239
+ return function({ addComponents, theme }) {
240
+ const config = theme(
241
+ "shurikenUi.slimscroll"
242
+ );
243
+ addComponents({
244
+ [`.${prefix}-slimscroll::-webkit-scrollbar, .${prefix}-slimscroll-opaque::-webkit-scrollbar`]: {
245
+ scrollBehavior: "smooth",
246
+ scrollbarGutter: "stable",
247
+ [`@apply w-${config.width}`]: {}
99
248
  },
100
- [`.${prefix}-text-800`]: {
101
- "@apply text-muted-800 dark:text-muted-200": {}
249
+ [`.${prefix}-slimscroll::-webkit-scrollbar-thumb`]: {
250
+ [`@apply rounded-lg bg-${config.bg} dark:bg-${config.bgDark} duration-300 transition-all`]: {}
102
251
  },
103
- [`.${prefix}-text-900`]: {
104
- "@apply text-muted-900 dark:text-muted-100": {}
252
+ [`.${prefix}-slimscroll-opaque::-webkit-scrollbar-thumb`]: {
253
+ [`@apply rounded-lg bg-transparent duration-300 transition-all`]: {}
105
254
  },
106
- [`.${prefix}-text-black`]: {
107
- "@apply text-black dark:text-white": {}
255
+ [`.${prefix}-slimscroll:hover::-webkit-scrollbar-thumb, .${prefix}-slimscroll-opaque:hover::-webkit-scrollbar-thumb`]: {
256
+ [`@apply bg-${config.bgHover} dark:bg-${config.bgHoverDark}`]: {}
108
257
  }
109
258
  });
259
+ };
260
+ },
261
+ function() {
262
+ return {
263
+ theme: {
264
+ shurikenUi: {
265
+ slimscroll: defaultSlimscrollConfig
266
+ }
267
+ }
268
+ };
269
+ }
270
+ );
271
+
272
+ const defaultTooltipConfig = {
273
+ font: "sans",
274
+ bg: "[#1e293b]",
275
+ bgDark: "[#ec4899]",
276
+ text: "[#fff]",
277
+ textDark: "[#fff]",
278
+ minWidth: "3rem",
279
+ maxWidth: "21rem"
280
+ };
281
+ const tooltip = plugin__default.withOptions(
282
+ function(options) {
283
+ const { prefix } = defu.defu(options, defaultPluginOptions);
284
+ return function({ addComponents, theme }) {
285
+ const config = theme(
286
+ "shurikenUi.tooltip"
287
+ );
288
+ const tooltip = `data-${prefix}-tooltip`;
289
+ const position = `data-${prefix}-tooltip-position`;
110
290
  addComponents({
291
+ [`[${tooltip}]`]: {
292
+ position: "relative"
293
+ },
294
+ [`[${tooltip}]::before, [${tooltip}]::after`]: {
295
+ textTransform: "none",
296
+ fontSize: "0.9em",
297
+ lineHeight: "1",
298
+ userSelect: "none",
299
+ pointerEvents: "none",
300
+ position: "absolute",
301
+ display: "none",
302
+ opacity: "0"
303
+ },
304
+ [`[${tooltip}]::before`]: {
305
+ content: "''",
306
+ border: "5px solid transparent",
307
+ zIndex: "1001"
308
+ },
309
+ [`[${tooltip}]::after`]: {
310
+ content: `attr(${tooltip})`,
311
+ textAlign: "center",
312
+ minWidth: config.minWidth,
313
+ maxWidth: config.maxWidth,
314
+ whiteSpace: "pre",
315
+ overflow: "hidden",
316
+ padding: "1ch 1.5ch",
317
+ borderRadius: "0.5ch",
318
+ zIndex: "1000",
319
+ [`@apply font-${config.font} text-xs shadow-lg`]: {},
320
+ [`@apply text-${config.text}`]: {},
321
+ [`@apply bg-${config.bg}`]: {}
322
+ },
323
+ [`.dark [${tooltip}]::after`]: {
324
+ [`@apply text-${config.textDark}`]: {},
325
+ [`@apply bg-${config.bgDark}`]: {}
326
+ },
327
+ [`[${tooltip}]:hover::before, [${tooltip}]:hover::after, [${tooltip}]:focus-visible::before, [${tooltip}]:focus-visible::after`]: {
328
+ display: "block"
329
+ },
330
+ [`[${tooltip}='']::before, [${tooltip}='']::after`]: {
331
+ display: "none !important"
332
+ },
333
+ /* position up (default) */
334
+ [`[${tooltip}]:not([${position}])::before, [${tooltip}][${position}^='up']::before`]: {
335
+ bottom: "calc(100% + 8px)",
336
+ borderBottomWidth: "0",
337
+ borderTopColor: "currentColor",
338
+ [`@apply text-${config.bg}`]: {}
339
+ },
340
+ [`.dark [${tooltip}]:not([${position}])::before, .dark [${tooltip}][${position}^='up']::before`]: {
341
+ [`@apply text-${config.bgDark}`]: {}
342
+ },
343
+ [`[${tooltip}]:not([${position}])::after, [${tooltip}][${position}^='up']::after`]: {
344
+ bottom: "calc(100% + 13px)"
345
+ },
346
+ [`[${tooltip}]:not([${position}])::before, [${tooltip}][${position}^='up']::before, [${tooltip}]:not([${position}])::after, [${tooltip}][${position}^='up']::after`]: {
347
+ left: "50%",
348
+ // insetInlineStart
349
+ transform: "translate(-50%, -0.5em)"
350
+ },
351
+ /* position down */
352
+ [`[${tooltip}][${position}^='down']::before`]: {
353
+ top: "100%",
354
+ borderTopWidth: "0",
355
+ borderBottomColor: "currentColor",
356
+ [`@apply text-${config.bg}`]: {}
357
+ },
358
+ [`.dark [${tooltip}][${position}^='down']::before`]: {
359
+ [`@apply text-${config.bgDark}`]: {}
360
+ },
361
+ [`[${tooltip}][${position}^='down']::after`]: {
362
+ top: "calc(100% + 5px)"
363
+ },
364
+ [`[${tooltip}][${position}^='down']::before, [${tooltip}][${position}^='down']::after`]: {
365
+ left: "50%",
366
+ // insetInlineStart
367
+ transform: "translate(-50%, 0.5em)"
368
+ },
369
+ /* position start (left) */
370
+ [`[${tooltip}][${position}^='start']::before, [${tooltip}][${position}^='left']::before`]: {
371
+ top: "50%",
372
+ borderEndWidth: "0",
373
+ borderStartColor: "currentColor",
374
+ insetInlineStart: "calc(0em - 5px)",
375
+ transform: "translate(-0.5em, -50%)",
376
+ [`@apply text-${config.bg}`]: {}
377
+ },
378
+ [`[${tooltip}][${position}^='start']::before, [${tooltip}][${position}^='left']::before`]: {
379
+ [`@apply text-${config.bgDark}`]: {}
380
+ },
381
+ [`[${tooltip}][${position}^='start']::after, [${tooltip}][${position}^='left']::after`]: {
382
+ top: "50%",
383
+ insetInlineEnd: "calc(100% + 5px)",
384
+ transform: "translate(-0.5em, -50%)"
385
+ },
386
+ /* position end (right) */
387
+ [`[${tooltip}][${position}^='end']::before, [${tooltip}][${position}^='right']::before`]: {
388
+ top: "50%",
389
+ borderStartWidth: "0",
390
+ borderEndColor: "currentColor",
391
+ insetInlineEnd: "calc(0em - 5px)",
392
+ transform: "translate(0.5em, -50%)",
393
+ [`@apply text-${config.bg}`]: {}
394
+ },
395
+ [`[${tooltip}][${position}^='end']::before, [${tooltip}][${position}^='right']::before`]: {
396
+ [`@apply text-${config.bgDark}`]: {}
397
+ },
398
+ [`[${tooltip}][${position}^='end']::after, [${tooltip}][${position}^='right']::after`]: {
399
+ top: "50%",
400
+ insetInlineStart: "calc(100% + 5px)",
401
+ transform: "translate(0.5em, -50%)"
402
+ },
403
+ [`${[
404
+ `[${tooltip}]:not([${position}]):hover::before`,
405
+ `[${tooltip}]:not([${position}]):hover::after`,
406
+ `[${tooltip}][${position}^='up']:hover::before`,
407
+ `[${tooltip}][${position}^='up']:hover::after`,
408
+ `[${tooltip}][${position}^='down']:hover::before`,
409
+ `[${tooltip}][${position}^='down']:hover::after`,
410
+ `[${tooltip}]:not([${position}]):focus-visible::before`,
411
+ `[${tooltip}]:not([${position}]):focus-visible::after`,
412
+ `[${tooltip}][${position}^='up']:focus-visible::before`,
413
+ `[${tooltip}][${position}^='up']:focus-visible::after`,
414
+ `[${tooltip}][${position}^='down']:focus-visible::before`,
415
+ `[${tooltip}][${position}^='down']:focus-visible::after`
416
+ ].join(",")}`]: {
417
+ [`@apply animate-${prefix}-tooltip-x`]: {}
418
+ },
419
+ [`${[
420
+ `[${tooltip}][${position}^='left']:hover::before`,
421
+ `[${tooltip}][${position}^='left']:hover::after`,
422
+ `[${tooltip}][${position}^='right']:hover::before`,
423
+ `[${tooltip}][${position}^='right']:hover::after`,
424
+ `[${tooltip}][${position}^='start']:hover::before`,
425
+ `[${tooltip}][${position}^='start']:hover::after`,
426
+ `[${tooltip}][${position}^='end']:hover::before`,
427
+ `[${tooltip}][${position}^='end']:hover::after`,
428
+ `[${tooltip}][${position}^='left']:focus-visible::before`,
429
+ `[${tooltip}][${position}^='left']:focus-visible::after`,
430
+ `[${tooltip}][${position}^='right']:focus-visible::before`,
431
+ `[${tooltip}][${position}^='right']:focus-visible::after`,
432
+ `[${tooltip}][${position}^='start']:focus-visible::before`,
433
+ `[${tooltip}][${position}^='start']:focus-visible::after`,
434
+ `[${tooltip}][${position}^='end']:focus-visible::before`,
435
+ `[${tooltip}][${position}^='end']:focus-visible::after`
436
+ ].join(",")}`]: {
437
+ [`@apply animate-${prefix}-tooltip-y`]: {}
438
+ }
439
+ });
440
+ };
441
+ },
442
+ function(options) {
443
+ const { prefix } = defu.defu(options, defaultPluginOptions);
444
+ return {
445
+ theme: {
446
+ keyframes: {
447
+ [`${prefix}-tooltip-x`]: {
448
+ to: {
449
+ opacity: "1",
450
+ transform: "translate(-50%, 0)"
451
+ }
452
+ },
453
+ [`${prefix}-tooltip-y`]: {
454
+ to: {
455
+ opacity: "1",
456
+ transform: "translate(0, -50%)"
457
+ }
458
+ }
459
+ },
460
+ animation: {
461
+ [`${prefix}-tooltip-x`]: `${prefix}-tooltip-x 300ms ease-out forwards`,
462
+ [`${prefix}-tooltip-y`]: `${prefix}-tooltip-y 300ms ease-out forwards`
463
+ },
464
+ shurikenUi: {
465
+ tooltip: defaultTooltipConfig
466
+ }
467
+ }
468
+ };
469
+ }
470
+ );
471
+
472
+ const components = [
473
+ dropdown,
474
+ focus,
475
+ label,
476
+ mark,
477
+ mask,
478
+ placeload,
479
+ slimscroll,
480
+ tooltip
481
+ ];
482
+ const shurikenUIComponents = plugin__default.withOptions(
483
+ function(options) {
484
+ return function(api) {
485
+ for (const component of components) {
486
+ component(options).handler(api);
487
+ }
488
+ };
489
+ },
490
+ function(options) {
491
+ let config = {};
492
+ for (const component of components) {
493
+ config = defu.defu(config, component(options).config);
494
+ }
495
+ return config;
496
+ }
497
+ );
498
+
499
+ const bg = plugin__default.withOptions(
500
+ function(options) {
501
+ const { prefix } = defu.defu(options, defaultPluginOptions);
502
+ return function({ addUtilities }) {
503
+ addUtilities({
111
504
  [`.${prefix}-bg-white`]: {
112
505
  "@apply bg-white dark:bg-muted-900": {}
113
506
  },
114
507
  [`.${prefix}-bg-50`]: {
115
- "@apply bg-muted-50 dark:bg-muted-900": {}
508
+ "@apply bg-muted-50 dark:bg-muted-950": {}
116
509
  },
117
510
  [`.${prefix}-bg-100`]: {
118
511
  "@apply bg-muted-100 dark:bg-muted-900": {}
@@ -141,36 +534,101 @@ const shurikenUIComponents = plugin__default.withOptions(
141
534
  [`.${prefix}-bg-900`]: {
142
535
  "@apply bg-muted-900 dark:bg-muted-100": {}
143
536
  },
537
+ [`.${prefix}-bg-950`]: {
538
+ "@apply bg-muted-950 dark:bg-muted-50": {}
539
+ },
144
540
  [`.${prefix}-bg-black`]: {
145
541
  "@apply bg-muted-900 dark:bg-white": {}
146
542
  }
147
543
  });
148
- addComponents({
149
- [`.${prefix}-label`]: {
150
- "@apply inline-block font-alt leading-none text-muted-400 dark:text-muted-400/80": {}
151
- }
152
- });
153
- addComponents({
154
- [`.${prefix}-dropdown-divider`]: {
155
- "@apply my-2 block h-px w-full border-t border-muted-200 dark:border-muted-600": {}
156
- }
157
- });
158
- addComponents({
159
- [`.${prefix}-mark`]: {
160
- "@apply bg-primary-100 text-primary-800 dark:bg-primary-800 dark:text-primary-200": {}
544
+ };
545
+ },
546
+ function(options) {
547
+ return {};
548
+ }
549
+ );
550
+
551
+ const text = plugin__default.withOptions(
552
+ function(options) {
553
+ const { prefix } = defu.defu(options, defaultPluginOptions);
554
+ return function({ addUtilities }) {
555
+ addUtilities({
556
+ [`.${prefix}-text-white`]: {
557
+ "@apply text-white dark:text-black": {}
558
+ },
559
+ [`.${prefix}-text-50`]: {
560
+ "@apply text-muted-50 dark:text-muted-950": {}
561
+ },
562
+ [`.${prefix}-text-100`]: {
563
+ "@apply text-muted-100 dark:text-muted-900": {}
564
+ },
565
+ [`.${prefix}-text-200`]: {
566
+ "@apply text-muted-200 dark:text-muted-800": {}
567
+ },
568
+ [`.${prefix}-text-300`]: {
569
+ "@apply text-muted-300 dark:text-muted-700": {}
570
+ },
571
+ [`.${prefix}-text-400`]: {
572
+ "@apply text-muted-400 dark:text-muted-600": {}
573
+ },
574
+ [`.${prefix}-text-500`]: {
575
+ "@apply text-muted-500 dark:text-muted-500": {}
576
+ },
577
+ [`.${prefix}-text-600`]: {
578
+ "@apply text-muted-600 dark:text-muted-400": {}
579
+ },
580
+ [`.${prefix}-text-700`]: {
581
+ "@apply text-muted-700 dark:text-muted-300": {}
582
+ },
583
+ [`.${prefix}-text-800`]: {
584
+ "@apply text-muted-800 dark:text-muted-200": {}
585
+ },
586
+ [`.${prefix}-text-900`]: {
587
+ "@apply text-muted-900 dark:text-muted-100": {}
588
+ },
589
+ [`.${prefix}-text-950`]: {
590
+ "@apply text-muted-950 dark:text-muted-50": {}
591
+ },
592
+ [`.${prefix}-text-black`]: {
593
+ "@apply text-black dark:text-white": {}
161
594
  }
162
595
  });
163
596
  };
164
597
  },
165
- function(options) {
598
+ function() {
166
599
  return {};
167
600
  }
168
601
  );
169
602
 
603
+ const utilities = [bg, text];
604
+ const shurikenUIUtilities = plugin__default.withOptions(
605
+ function(options) {
606
+ return function(api) {
607
+ for (const utility of utilities) {
608
+ utility(options).handler(api);
609
+ }
610
+ };
611
+ },
612
+ function(options) {
613
+ let config = {};
614
+ for (const utility of utilities) {
615
+ config = defu.defu(config, utility(options).config);
616
+ }
617
+ return config;
618
+ }
619
+ );
620
+
170
621
  const shurikenUIPreset = {
171
622
  darkMode: "class",
172
623
  content: [],
173
- plugins: [typography__default, aspectRatio__default, shurikenUIComponents],
624
+ plugins: [
625
+ typography__default,
626
+ aspectRatio__default,
627
+ containerQueries__default,
628
+ shurikenUIBase,
629
+ shurikenUIComponents,
630
+ shurikenUIUtilities
631
+ ],
174
632
  theme: {
175
633
  fontFamily: {
176
634
  sans: defaultTheme__default.fontFamily.sans,
@@ -280,15 +738,10 @@ const shurikenUIPreset = {
280
738
  "nui-indeterminate": {
281
739
  "0%": { "margin-left": "-10%" },
282
740
  "100%": { "margin-left": "100%" }
283
- },
284
- "nui-placeload": {
285
- "0%": { "background-position": "-468px 0" },
286
- "100%": { "background-position": "468px 0" }
287
741
  }
288
742
  },
289
743
  animation: {
290
- "nui-indeterminate": "nui-indeterminate 1s cubic-bezier(0.4, 0, 0.2, 1) infinite",
291
- "nui-placeload": "nui-placeload 1s linear infinite forwards"
744
+ "nui-indeterminate": "nui-indeterminate 1s cubic-bezier(0.4, 0, 0.2, 1) infinite"
292
745
  }
293
746
  }
294
747
  }