jasmincss 1.0.13 → 1.0.15

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.
@@ -3387,6 +3387,110 @@ function generateAccessibilityUtilities(config) {
3387
3387
  };
3388
3388
  }
3389
3389
 
3390
+ // src/core/utilities/borders.js
3391
+ function generateBorderUtilities(config) {
3392
+ const classes = [];
3393
+ const borderWidths = ["0", "1", "2", "3", "4", "6", "8", "12"];
3394
+ borderWidths.forEach((w) => {
3395
+ const value = w === "0" ? "0px" : `${w}px`;
3396
+ classes.push({ name: `border-${w}`, css: `.border-${w} { border-width: ${value}; }` });
3397
+ classes.push({ name: `border-t-${w}`, css: `.border-t-${w} { border-top-width: ${value}; }` });
3398
+ classes.push({ name: `border-r-${w}`, css: `.border-r-${w} { border-right-width: ${value}; }` });
3399
+ classes.push({ name: `border-b-${w}`, css: `.border-b-${w} { border-bottom-width: ${value}; }` });
3400
+ classes.push({ name: `border-l-${w}`, css: `.border-l-${w} { border-left-width: ${value}; }` });
3401
+ classes.push({ name: `border-x-${w}`, css: `.border-x-${w} { border-left-width: ${value}; border-right-width: ${value}; }` });
3402
+ classes.push({ name: `border-y-${w}`, css: `.border-y-${w} { border-top-width: ${value}; border-bottom-width: ${value}; }` });
3403
+ });
3404
+ classes.push({ name: "border", css: ".border { border-width: 1px; }" });
3405
+ classes.push({ name: "border-t", css: ".border-t { border-top-width: 1px; }" });
3406
+ classes.push({ name: "border-r", css: ".border-r { border-right-width: 1px; }" });
3407
+ classes.push({ name: "border-b", css: ".border-b { border-bottom-width: 1px; }" });
3408
+ classes.push({ name: "border-l", css: ".border-l { border-left-width: 1px; }" });
3409
+ classes.push({ name: "border-x", css: ".border-x { border-left-width: 1px; border-right-width: 1px; }" });
3410
+ classes.push({ name: "border-y", css: ".border-y { border-top-width: 1px; border-bottom-width: 1px; }" });
3411
+ ["solid", "dashed", "dotted", "double", "hidden", "none"].forEach((s) => {
3412
+ classes.push({ name: `border-${s}`, css: `.border-${s} { border-style: ${s}; }` });
3413
+ });
3414
+ const radii = {
3415
+ "none": "0px",
3416
+ "sm": "0.125rem",
3417
+ "": "0.25rem",
3418
+ "md": "0.375rem",
3419
+ "lg": "0.5rem",
3420
+ "xl": "0.75rem",
3421
+ "2xl": "1rem",
3422
+ "3xl": "1.5rem",
3423
+ "full": "9999px"
3424
+ };
3425
+ Object.entries(radii).forEach(([key, value]) => {
3426
+ const name = key === "" ? "rounded" : `rounded-${key}`;
3427
+ classes.push({ name, css: `.${name} { border-radius: ${value}; }` });
3428
+ if (key !== "") {
3429
+ const cornerName = key === "" ? "" : `-${key}`;
3430
+ classes.push({ name: `rounded-t${cornerName}`, css: `.rounded-t${cornerName} { border-top-left-radius: ${value}; border-top-right-radius: ${value}; }` });
3431
+ classes.push({ name: `rounded-r${cornerName}`, css: `.rounded-r${cornerName} { border-top-right-radius: ${value}; border-bottom-right-radius: ${value}; }` });
3432
+ classes.push({ name: `rounded-b${cornerName}`, css: `.rounded-b${cornerName} { border-bottom-left-radius: ${value}; border-bottom-right-radius: ${value}; }` });
3433
+ classes.push({ name: `rounded-l${cornerName}`, css: `.rounded-l${cornerName} { border-top-left-radius: ${value}; border-bottom-left-radius: ${value}; }` });
3434
+ classes.push({ name: `rounded-tl${cornerName}`, css: `.rounded-tl${cornerName} { border-top-left-radius: ${value}; }` });
3435
+ classes.push({ name: `rounded-tr${cornerName}`, css: `.rounded-tr${cornerName} { border-top-right-radius: ${value}; }` });
3436
+ classes.push({ name: `rounded-bl${cornerName}`, css: `.rounded-bl${cornerName} { border-bottom-left-radius: ${value}; }` });
3437
+ classes.push({ name: `rounded-br${cornerName}`, css: `.rounded-br${cornerName} { border-bottom-right-radius: ${value}; }` });
3438
+ }
3439
+ });
3440
+ ["0", "1", "2", "4", "8"].forEach((w) => {
3441
+ const value = w === "0" ? "0px" : `${w}px`;
3442
+ classes.push({
3443
+ name: `divide-x-${w}`,
3444
+ css: `.divide-x-${w} > :not([hidden]) ~ :not([hidden]) { border-left-width: ${value}; }`
3445
+ });
3446
+ classes.push({
3447
+ name: `divide-y-${w}`,
3448
+ css: `.divide-y-${w} > :not([hidden]) ~ :not([hidden]) { border-top-width: ${value}; }`
3449
+ });
3450
+ });
3451
+ classes.push({
3452
+ name: "divide-x",
3453
+ css: ".divide-x > :not([hidden]) ~ :not([hidden]) { border-left-width: 1px; }"
3454
+ });
3455
+ classes.push({
3456
+ name: "divide-y",
3457
+ css: ".divide-y > :not([hidden]) ~ :not([hidden]) { border-top-width: 1px; }"
3458
+ });
3459
+ ["solid", "dashed", "dotted", "double", "none"].forEach((s) => {
3460
+ classes.push({
3461
+ name: `divide-${s}`,
3462
+ css: `.divide-${s} > :not([hidden]) ~ :not([hidden]) { border-style: ${s}; }`
3463
+ });
3464
+ });
3465
+ ["0", "1", "2", "4", "8"].forEach((w) => {
3466
+ classes.push({ name: `outline-${w}`, css: `.outline-${w} { outline-width: ${w}px; }` });
3467
+ });
3468
+ classes.push({ name: "outline", css: ".outline { outline-style: solid; }" });
3469
+ classes.push({ name: "outline-none", css: ".outline-none { outline: 2px solid transparent; outline-offset: 2px; }" });
3470
+ ["none", "solid", "dashed", "dotted", "double"].forEach((s) => {
3471
+ classes.push({ name: `outline-${s}`, css: `.outline-${s} { outline-style: ${s}; }` });
3472
+ });
3473
+ ["0", "1", "2", "4", "8"].forEach((o) => {
3474
+ classes.push({ name: `outline-offset-${o}`, css: `.outline-offset-${o} { outline-offset: ${o}px; }` });
3475
+ });
3476
+ ["0", "1", "2", "4", "8"].forEach((w) => {
3477
+ const value = w === "0" ? "0px" : `${w}px`;
3478
+ classes.push({
3479
+ name: `ring-${w}`,
3480
+ css: `.ring-${w} { --j-ring-offset-shadow: var(--j-ring-inset) 0 0 0 var(--j-ring-offset-width) var(--j-ring-offset-color); --j-ring-shadow: var(--j-ring-inset) 0 0 0 calc(${value} + var(--j-ring-offset-width)) var(--j-ring-color); box-shadow: var(--j-ring-offset-shadow), var(--j-ring-shadow), var(--j-shadow, 0 0 #0000); }`
3481
+ });
3482
+ });
3483
+ classes.push({
3484
+ name: "ring",
3485
+ css: ".ring { --j-ring-offset-shadow: var(--j-ring-inset) 0 0 0 var(--j-ring-offset-width) var(--j-ring-offset-color); --j-ring-shadow: var(--j-ring-inset) 0 0 0 calc(3px + var(--j-ring-offset-width)) var(--j-ring-color); box-shadow: var(--j-ring-offset-shadow), var(--j-ring-shadow), var(--j-shadow, 0 0 #0000); }"
3486
+ });
3487
+ classes.push({ name: "ring-inset", css: ".ring-inset { --j-ring-inset: inset; }" });
3488
+ return {
3489
+ css: classes.map((c) => c.css).join("\n"),
3490
+ classes
3491
+ };
3492
+ }
3493
+
3390
3494
  // src/core/utilities/index.js
3391
3495
  var utilityGenerators = {
3392
3496
  layout: generateLayoutUtilities,
@@ -3402,7 +3506,8 @@ var utilityGenerators = {
3402
3506
  columns: generateColumnUtilities,
3403
3507
  scroll: generateScrollUtilities,
3404
3508
  svg: generateSvgUtilities,
3405
- accessibility: generateAccessibilityUtilities
3509
+ accessibility: generateAccessibilityUtilities,
3510
+ borders: generateBorderUtilities
3406
3511
  };
3407
3512
  function generateUtilities(config, options = {}) {
3408
3513
  const { usedClasses, includeAll = false } = options;
@@ -4821,7 +4926,7 @@ input[type="range"].form-control::-webkit-slider-thumb:hover {
4821
4926
 
4822
4927
  .form-floating > .form-control:focus ~ .form-label,
4823
4928
  .form-floating > .form-control:not(:placeholder-shown) ~ .form-label {
4824
- transform: scale(0.85) translateY(-0.5rem));
4929
+ transform: scale(0.85) translateY(-0.5rem);
4825
4930
  color: var(--j-primary);
4826
4931
  }
4827
4932
 
@@ -3354,6 +3354,110 @@ function generateAccessibilityUtilities(config) {
3354
3354
  };
3355
3355
  }
3356
3356
 
3357
+ // src/core/utilities/borders.js
3358
+ function generateBorderUtilities(config) {
3359
+ const classes = [];
3360
+ const borderWidths = ["0", "1", "2", "3", "4", "6", "8", "12"];
3361
+ borderWidths.forEach((w) => {
3362
+ const value = w === "0" ? "0px" : `${w}px`;
3363
+ classes.push({ name: `border-${w}`, css: `.border-${w} { border-width: ${value}; }` });
3364
+ classes.push({ name: `border-t-${w}`, css: `.border-t-${w} { border-top-width: ${value}; }` });
3365
+ classes.push({ name: `border-r-${w}`, css: `.border-r-${w} { border-right-width: ${value}; }` });
3366
+ classes.push({ name: `border-b-${w}`, css: `.border-b-${w} { border-bottom-width: ${value}; }` });
3367
+ classes.push({ name: `border-l-${w}`, css: `.border-l-${w} { border-left-width: ${value}; }` });
3368
+ classes.push({ name: `border-x-${w}`, css: `.border-x-${w} { border-left-width: ${value}; border-right-width: ${value}; }` });
3369
+ classes.push({ name: `border-y-${w}`, css: `.border-y-${w} { border-top-width: ${value}; border-bottom-width: ${value}; }` });
3370
+ });
3371
+ classes.push({ name: "border", css: ".border { border-width: 1px; }" });
3372
+ classes.push({ name: "border-t", css: ".border-t { border-top-width: 1px; }" });
3373
+ classes.push({ name: "border-r", css: ".border-r { border-right-width: 1px; }" });
3374
+ classes.push({ name: "border-b", css: ".border-b { border-bottom-width: 1px; }" });
3375
+ classes.push({ name: "border-l", css: ".border-l { border-left-width: 1px; }" });
3376
+ classes.push({ name: "border-x", css: ".border-x { border-left-width: 1px; border-right-width: 1px; }" });
3377
+ classes.push({ name: "border-y", css: ".border-y { border-top-width: 1px; border-bottom-width: 1px; }" });
3378
+ ["solid", "dashed", "dotted", "double", "hidden", "none"].forEach((s) => {
3379
+ classes.push({ name: `border-${s}`, css: `.border-${s} { border-style: ${s}; }` });
3380
+ });
3381
+ const radii = {
3382
+ "none": "0px",
3383
+ "sm": "0.125rem",
3384
+ "": "0.25rem",
3385
+ "md": "0.375rem",
3386
+ "lg": "0.5rem",
3387
+ "xl": "0.75rem",
3388
+ "2xl": "1rem",
3389
+ "3xl": "1.5rem",
3390
+ "full": "9999px"
3391
+ };
3392
+ Object.entries(radii).forEach(([key, value]) => {
3393
+ const name = key === "" ? "rounded" : `rounded-${key}`;
3394
+ classes.push({ name, css: `.${name} { border-radius: ${value}; }` });
3395
+ if (key !== "") {
3396
+ const cornerName = key === "" ? "" : `-${key}`;
3397
+ classes.push({ name: `rounded-t${cornerName}`, css: `.rounded-t${cornerName} { border-top-left-radius: ${value}; border-top-right-radius: ${value}; }` });
3398
+ classes.push({ name: `rounded-r${cornerName}`, css: `.rounded-r${cornerName} { border-top-right-radius: ${value}; border-bottom-right-radius: ${value}; }` });
3399
+ classes.push({ name: `rounded-b${cornerName}`, css: `.rounded-b${cornerName} { border-bottom-left-radius: ${value}; border-bottom-right-radius: ${value}; }` });
3400
+ classes.push({ name: `rounded-l${cornerName}`, css: `.rounded-l${cornerName} { border-top-left-radius: ${value}; border-bottom-left-radius: ${value}; }` });
3401
+ classes.push({ name: `rounded-tl${cornerName}`, css: `.rounded-tl${cornerName} { border-top-left-radius: ${value}; }` });
3402
+ classes.push({ name: `rounded-tr${cornerName}`, css: `.rounded-tr${cornerName} { border-top-right-radius: ${value}; }` });
3403
+ classes.push({ name: `rounded-bl${cornerName}`, css: `.rounded-bl${cornerName} { border-bottom-left-radius: ${value}; }` });
3404
+ classes.push({ name: `rounded-br${cornerName}`, css: `.rounded-br${cornerName} { border-bottom-right-radius: ${value}; }` });
3405
+ }
3406
+ });
3407
+ ["0", "1", "2", "4", "8"].forEach((w) => {
3408
+ const value = w === "0" ? "0px" : `${w}px`;
3409
+ classes.push({
3410
+ name: `divide-x-${w}`,
3411
+ css: `.divide-x-${w} > :not([hidden]) ~ :not([hidden]) { border-left-width: ${value}; }`
3412
+ });
3413
+ classes.push({
3414
+ name: `divide-y-${w}`,
3415
+ css: `.divide-y-${w} > :not([hidden]) ~ :not([hidden]) { border-top-width: ${value}; }`
3416
+ });
3417
+ });
3418
+ classes.push({
3419
+ name: "divide-x",
3420
+ css: ".divide-x > :not([hidden]) ~ :not([hidden]) { border-left-width: 1px; }"
3421
+ });
3422
+ classes.push({
3423
+ name: "divide-y",
3424
+ css: ".divide-y > :not([hidden]) ~ :not([hidden]) { border-top-width: 1px; }"
3425
+ });
3426
+ ["solid", "dashed", "dotted", "double", "none"].forEach((s) => {
3427
+ classes.push({
3428
+ name: `divide-${s}`,
3429
+ css: `.divide-${s} > :not([hidden]) ~ :not([hidden]) { border-style: ${s}; }`
3430
+ });
3431
+ });
3432
+ ["0", "1", "2", "4", "8"].forEach((w) => {
3433
+ classes.push({ name: `outline-${w}`, css: `.outline-${w} { outline-width: ${w}px; }` });
3434
+ });
3435
+ classes.push({ name: "outline", css: ".outline { outline-style: solid; }" });
3436
+ classes.push({ name: "outline-none", css: ".outline-none { outline: 2px solid transparent; outline-offset: 2px; }" });
3437
+ ["none", "solid", "dashed", "dotted", "double"].forEach((s) => {
3438
+ classes.push({ name: `outline-${s}`, css: `.outline-${s} { outline-style: ${s}; }` });
3439
+ });
3440
+ ["0", "1", "2", "4", "8"].forEach((o) => {
3441
+ classes.push({ name: `outline-offset-${o}`, css: `.outline-offset-${o} { outline-offset: ${o}px; }` });
3442
+ });
3443
+ ["0", "1", "2", "4", "8"].forEach((w) => {
3444
+ const value = w === "0" ? "0px" : `${w}px`;
3445
+ classes.push({
3446
+ name: `ring-${w}`,
3447
+ css: `.ring-${w} { --j-ring-offset-shadow: var(--j-ring-inset) 0 0 0 var(--j-ring-offset-width) var(--j-ring-offset-color); --j-ring-shadow: var(--j-ring-inset) 0 0 0 calc(${value} + var(--j-ring-offset-width)) var(--j-ring-color); box-shadow: var(--j-ring-offset-shadow), var(--j-ring-shadow), var(--j-shadow, 0 0 #0000); }`
3448
+ });
3449
+ });
3450
+ classes.push({
3451
+ name: "ring",
3452
+ css: ".ring { --j-ring-offset-shadow: var(--j-ring-inset) 0 0 0 var(--j-ring-offset-width) var(--j-ring-offset-color); --j-ring-shadow: var(--j-ring-inset) 0 0 0 calc(3px + var(--j-ring-offset-width)) var(--j-ring-color); box-shadow: var(--j-ring-offset-shadow), var(--j-ring-shadow), var(--j-shadow, 0 0 #0000); }"
3453
+ });
3454
+ classes.push({ name: "ring-inset", css: ".ring-inset { --j-ring-inset: inset; }" });
3455
+ return {
3456
+ css: classes.map((c) => c.css).join("\n"),
3457
+ classes
3458
+ };
3459
+ }
3460
+
3357
3461
  // src/core/utilities/index.js
3358
3462
  var utilityGenerators = {
3359
3463
  layout: generateLayoutUtilities,
@@ -3369,7 +3473,8 @@ var utilityGenerators = {
3369
3473
  columns: generateColumnUtilities,
3370
3474
  scroll: generateScrollUtilities,
3371
3475
  svg: generateSvgUtilities,
3372
- accessibility: generateAccessibilityUtilities
3476
+ accessibility: generateAccessibilityUtilities,
3477
+ borders: generateBorderUtilities
3373
3478
  };
3374
3479
  function generateUtilities(config, options = {}) {
3375
3480
  const { usedClasses, includeAll = false } = options;
@@ -4788,7 +4893,7 @@ input[type="range"].form-control::-webkit-slider-thumb:hover {
4788
4893
 
4789
4894
  .form-floating > .form-control:focus ~ .form-label,
4790
4895
  .form-floating > .form-control:not(:placeholder-shown) ~ .form-label {
4791
- transform: scale(0.85) translateY(-0.5rem));
4896
+ transform: scale(0.85) translateY(-0.5rem);
4792
4897
  color: var(--j-primary);
4793
4898
  }
4794
4899
 
@@ -3446,6 +3446,114 @@ var init_accessibility = __esm({
3446
3446
  }
3447
3447
  });
3448
3448
 
3449
+ // src/core/utilities/borders.js
3450
+ function generateBorderUtilities(config) {
3451
+ const classes = [];
3452
+ const borderWidths = ["0", "1", "2", "3", "4", "6", "8", "12"];
3453
+ borderWidths.forEach((w) => {
3454
+ const value = w === "0" ? "0px" : `${w}px`;
3455
+ classes.push({ name: `border-${w}`, css: `.border-${w} { border-width: ${value}; }` });
3456
+ classes.push({ name: `border-t-${w}`, css: `.border-t-${w} { border-top-width: ${value}; }` });
3457
+ classes.push({ name: `border-r-${w}`, css: `.border-r-${w} { border-right-width: ${value}; }` });
3458
+ classes.push({ name: `border-b-${w}`, css: `.border-b-${w} { border-bottom-width: ${value}; }` });
3459
+ classes.push({ name: `border-l-${w}`, css: `.border-l-${w} { border-left-width: ${value}; }` });
3460
+ classes.push({ name: `border-x-${w}`, css: `.border-x-${w} { border-left-width: ${value}; border-right-width: ${value}; }` });
3461
+ classes.push({ name: `border-y-${w}`, css: `.border-y-${w} { border-top-width: ${value}; border-bottom-width: ${value}; }` });
3462
+ });
3463
+ classes.push({ name: "border", css: ".border { border-width: 1px; }" });
3464
+ classes.push({ name: "border-t", css: ".border-t { border-top-width: 1px; }" });
3465
+ classes.push({ name: "border-r", css: ".border-r { border-right-width: 1px; }" });
3466
+ classes.push({ name: "border-b", css: ".border-b { border-bottom-width: 1px; }" });
3467
+ classes.push({ name: "border-l", css: ".border-l { border-left-width: 1px; }" });
3468
+ classes.push({ name: "border-x", css: ".border-x { border-left-width: 1px; border-right-width: 1px; }" });
3469
+ classes.push({ name: "border-y", css: ".border-y { border-top-width: 1px; border-bottom-width: 1px; }" });
3470
+ ["solid", "dashed", "dotted", "double", "hidden", "none"].forEach((s) => {
3471
+ classes.push({ name: `border-${s}`, css: `.border-${s} { border-style: ${s}; }` });
3472
+ });
3473
+ const radii = {
3474
+ "none": "0px",
3475
+ "sm": "0.125rem",
3476
+ "": "0.25rem",
3477
+ "md": "0.375rem",
3478
+ "lg": "0.5rem",
3479
+ "xl": "0.75rem",
3480
+ "2xl": "1rem",
3481
+ "3xl": "1.5rem",
3482
+ "full": "9999px"
3483
+ };
3484
+ Object.entries(radii).forEach(([key, value]) => {
3485
+ const name = key === "" ? "rounded" : `rounded-${key}`;
3486
+ classes.push({ name, css: `.${name} { border-radius: ${value}; }` });
3487
+ if (key !== "") {
3488
+ const cornerName = key === "" ? "" : `-${key}`;
3489
+ classes.push({ name: `rounded-t${cornerName}`, css: `.rounded-t${cornerName} { border-top-left-radius: ${value}; border-top-right-radius: ${value}; }` });
3490
+ classes.push({ name: `rounded-r${cornerName}`, css: `.rounded-r${cornerName} { border-top-right-radius: ${value}; border-bottom-right-radius: ${value}; }` });
3491
+ classes.push({ name: `rounded-b${cornerName}`, css: `.rounded-b${cornerName} { border-bottom-left-radius: ${value}; border-bottom-right-radius: ${value}; }` });
3492
+ classes.push({ name: `rounded-l${cornerName}`, css: `.rounded-l${cornerName} { border-top-left-radius: ${value}; border-bottom-left-radius: ${value}; }` });
3493
+ classes.push({ name: `rounded-tl${cornerName}`, css: `.rounded-tl${cornerName} { border-top-left-radius: ${value}; }` });
3494
+ classes.push({ name: `rounded-tr${cornerName}`, css: `.rounded-tr${cornerName} { border-top-right-radius: ${value}; }` });
3495
+ classes.push({ name: `rounded-bl${cornerName}`, css: `.rounded-bl${cornerName} { border-bottom-left-radius: ${value}; }` });
3496
+ classes.push({ name: `rounded-br${cornerName}`, css: `.rounded-br${cornerName} { border-bottom-right-radius: ${value}; }` });
3497
+ }
3498
+ });
3499
+ ["0", "1", "2", "4", "8"].forEach((w) => {
3500
+ const value = w === "0" ? "0px" : `${w}px`;
3501
+ classes.push({
3502
+ name: `divide-x-${w}`,
3503
+ css: `.divide-x-${w} > :not([hidden]) ~ :not([hidden]) { border-left-width: ${value}; }`
3504
+ });
3505
+ classes.push({
3506
+ name: `divide-y-${w}`,
3507
+ css: `.divide-y-${w} > :not([hidden]) ~ :not([hidden]) { border-top-width: ${value}; }`
3508
+ });
3509
+ });
3510
+ classes.push({
3511
+ name: "divide-x",
3512
+ css: ".divide-x > :not([hidden]) ~ :not([hidden]) { border-left-width: 1px; }"
3513
+ });
3514
+ classes.push({
3515
+ name: "divide-y",
3516
+ css: ".divide-y > :not([hidden]) ~ :not([hidden]) { border-top-width: 1px; }"
3517
+ });
3518
+ ["solid", "dashed", "dotted", "double", "none"].forEach((s) => {
3519
+ classes.push({
3520
+ name: `divide-${s}`,
3521
+ css: `.divide-${s} > :not([hidden]) ~ :not([hidden]) { border-style: ${s}; }`
3522
+ });
3523
+ });
3524
+ ["0", "1", "2", "4", "8"].forEach((w) => {
3525
+ classes.push({ name: `outline-${w}`, css: `.outline-${w} { outline-width: ${w}px; }` });
3526
+ });
3527
+ classes.push({ name: "outline", css: ".outline { outline-style: solid; }" });
3528
+ classes.push({ name: "outline-none", css: ".outline-none { outline: 2px solid transparent; outline-offset: 2px; }" });
3529
+ ["none", "solid", "dashed", "dotted", "double"].forEach((s) => {
3530
+ classes.push({ name: `outline-${s}`, css: `.outline-${s} { outline-style: ${s}; }` });
3531
+ });
3532
+ ["0", "1", "2", "4", "8"].forEach((o) => {
3533
+ classes.push({ name: `outline-offset-${o}`, css: `.outline-offset-${o} { outline-offset: ${o}px; }` });
3534
+ });
3535
+ ["0", "1", "2", "4", "8"].forEach((w) => {
3536
+ const value = w === "0" ? "0px" : `${w}px`;
3537
+ classes.push({
3538
+ name: `ring-${w}`,
3539
+ css: `.ring-${w} { --j-ring-offset-shadow: var(--j-ring-inset) 0 0 0 var(--j-ring-offset-width) var(--j-ring-offset-color); --j-ring-shadow: var(--j-ring-inset) 0 0 0 calc(${value} + var(--j-ring-offset-width)) var(--j-ring-color); box-shadow: var(--j-ring-offset-shadow), var(--j-ring-shadow), var(--j-shadow, 0 0 #0000); }`
3540
+ });
3541
+ });
3542
+ classes.push({
3543
+ name: "ring",
3544
+ css: ".ring { --j-ring-offset-shadow: var(--j-ring-inset) 0 0 0 var(--j-ring-offset-width) var(--j-ring-offset-color); --j-ring-shadow: var(--j-ring-inset) 0 0 0 calc(3px + var(--j-ring-offset-width)) var(--j-ring-color); box-shadow: var(--j-ring-offset-shadow), var(--j-ring-shadow), var(--j-shadow, 0 0 #0000); }"
3545
+ });
3546
+ classes.push({ name: "ring-inset", css: ".ring-inset { --j-ring-inset: inset; }" });
3547
+ return {
3548
+ css: classes.map((c) => c.css).join("\n"),
3549
+ classes
3550
+ };
3551
+ }
3552
+ var init_borders = __esm({
3553
+ "src/core/utilities/borders.js"() {
3554
+ }
3555
+ });
3556
+
3449
3557
  // src/core/utilities/index.js
3450
3558
  function generateUtilities(config, options = {}) {
3451
3559
  const { usedClasses, includeAll = false } = options;
@@ -3639,6 +3747,7 @@ var init_utilities = __esm({
3639
3747
  init_scroll();
3640
3748
  init_svg();
3641
3749
  init_accessibility();
3750
+ init_borders();
3642
3751
  utilityGenerators = {
3643
3752
  layout: generateLayoutUtilities,
3644
3753
  spacing: generateSpacingUtilities,
@@ -3653,7 +3762,8 @@ var init_utilities = __esm({
3653
3762
  columns: generateColumnUtilities,
3654
3763
  scroll: generateScrollUtilities,
3655
3764
  svg: generateSvgUtilities,
3656
- accessibility: generateAccessibilityUtilities
3765
+ accessibility: generateAccessibilityUtilities,
3766
+ borders: generateBorderUtilities
3657
3767
  };
3658
3768
  }
3659
3769
  });
@@ -4908,7 +5018,7 @@ input[type="range"].form-control::-webkit-slider-thumb:hover {
4908
5018
 
4909
5019
  .form-floating > .form-control:focus ~ .form-label,
4910
5020
  .form-floating > .form-control:not(:placeholder-shown) ~ .form-label {
4911
- transform: scale(0.85) translateY(-0.5rem));
5021
+ transform: scale(0.85) translateY(-0.5rem);
4912
5022
  color: var(--j-primary);
4913
5023
  }
4914
5024
 
@@ -3424,6 +3424,114 @@ var init_accessibility = __esm({
3424
3424
  }
3425
3425
  });
3426
3426
 
3427
+ // src/core/utilities/borders.js
3428
+ function generateBorderUtilities(config) {
3429
+ const classes = [];
3430
+ const borderWidths = ["0", "1", "2", "3", "4", "6", "8", "12"];
3431
+ borderWidths.forEach((w) => {
3432
+ const value = w === "0" ? "0px" : `${w}px`;
3433
+ classes.push({ name: `border-${w}`, css: `.border-${w} { border-width: ${value}; }` });
3434
+ classes.push({ name: `border-t-${w}`, css: `.border-t-${w} { border-top-width: ${value}; }` });
3435
+ classes.push({ name: `border-r-${w}`, css: `.border-r-${w} { border-right-width: ${value}; }` });
3436
+ classes.push({ name: `border-b-${w}`, css: `.border-b-${w} { border-bottom-width: ${value}; }` });
3437
+ classes.push({ name: `border-l-${w}`, css: `.border-l-${w} { border-left-width: ${value}; }` });
3438
+ classes.push({ name: `border-x-${w}`, css: `.border-x-${w} { border-left-width: ${value}; border-right-width: ${value}; }` });
3439
+ classes.push({ name: `border-y-${w}`, css: `.border-y-${w} { border-top-width: ${value}; border-bottom-width: ${value}; }` });
3440
+ });
3441
+ classes.push({ name: "border", css: ".border { border-width: 1px; }" });
3442
+ classes.push({ name: "border-t", css: ".border-t { border-top-width: 1px; }" });
3443
+ classes.push({ name: "border-r", css: ".border-r { border-right-width: 1px; }" });
3444
+ classes.push({ name: "border-b", css: ".border-b { border-bottom-width: 1px; }" });
3445
+ classes.push({ name: "border-l", css: ".border-l { border-left-width: 1px; }" });
3446
+ classes.push({ name: "border-x", css: ".border-x { border-left-width: 1px; border-right-width: 1px; }" });
3447
+ classes.push({ name: "border-y", css: ".border-y { border-top-width: 1px; border-bottom-width: 1px; }" });
3448
+ ["solid", "dashed", "dotted", "double", "hidden", "none"].forEach((s) => {
3449
+ classes.push({ name: `border-${s}`, css: `.border-${s} { border-style: ${s}; }` });
3450
+ });
3451
+ const radii = {
3452
+ "none": "0px",
3453
+ "sm": "0.125rem",
3454
+ "": "0.25rem",
3455
+ "md": "0.375rem",
3456
+ "lg": "0.5rem",
3457
+ "xl": "0.75rem",
3458
+ "2xl": "1rem",
3459
+ "3xl": "1.5rem",
3460
+ "full": "9999px"
3461
+ };
3462
+ Object.entries(radii).forEach(([key, value]) => {
3463
+ const name = key === "" ? "rounded" : `rounded-${key}`;
3464
+ classes.push({ name, css: `.${name} { border-radius: ${value}; }` });
3465
+ if (key !== "") {
3466
+ const cornerName = key === "" ? "" : `-${key}`;
3467
+ classes.push({ name: `rounded-t${cornerName}`, css: `.rounded-t${cornerName} { border-top-left-radius: ${value}; border-top-right-radius: ${value}; }` });
3468
+ classes.push({ name: `rounded-r${cornerName}`, css: `.rounded-r${cornerName} { border-top-right-radius: ${value}; border-bottom-right-radius: ${value}; }` });
3469
+ classes.push({ name: `rounded-b${cornerName}`, css: `.rounded-b${cornerName} { border-bottom-left-radius: ${value}; border-bottom-right-radius: ${value}; }` });
3470
+ classes.push({ name: `rounded-l${cornerName}`, css: `.rounded-l${cornerName} { border-top-left-radius: ${value}; border-bottom-left-radius: ${value}; }` });
3471
+ classes.push({ name: `rounded-tl${cornerName}`, css: `.rounded-tl${cornerName} { border-top-left-radius: ${value}; }` });
3472
+ classes.push({ name: `rounded-tr${cornerName}`, css: `.rounded-tr${cornerName} { border-top-right-radius: ${value}; }` });
3473
+ classes.push({ name: `rounded-bl${cornerName}`, css: `.rounded-bl${cornerName} { border-bottom-left-radius: ${value}; }` });
3474
+ classes.push({ name: `rounded-br${cornerName}`, css: `.rounded-br${cornerName} { border-bottom-right-radius: ${value}; }` });
3475
+ }
3476
+ });
3477
+ ["0", "1", "2", "4", "8"].forEach((w) => {
3478
+ const value = w === "0" ? "0px" : `${w}px`;
3479
+ classes.push({
3480
+ name: `divide-x-${w}`,
3481
+ css: `.divide-x-${w} > :not([hidden]) ~ :not([hidden]) { border-left-width: ${value}; }`
3482
+ });
3483
+ classes.push({
3484
+ name: `divide-y-${w}`,
3485
+ css: `.divide-y-${w} > :not([hidden]) ~ :not([hidden]) { border-top-width: ${value}; }`
3486
+ });
3487
+ });
3488
+ classes.push({
3489
+ name: "divide-x",
3490
+ css: ".divide-x > :not([hidden]) ~ :not([hidden]) { border-left-width: 1px; }"
3491
+ });
3492
+ classes.push({
3493
+ name: "divide-y",
3494
+ css: ".divide-y > :not([hidden]) ~ :not([hidden]) { border-top-width: 1px; }"
3495
+ });
3496
+ ["solid", "dashed", "dotted", "double", "none"].forEach((s) => {
3497
+ classes.push({
3498
+ name: `divide-${s}`,
3499
+ css: `.divide-${s} > :not([hidden]) ~ :not([hidden]) { border-style: ${s}; }`
3500
+ });
3501
+ });
3502
+ ["0", "1", "2", "4", "8"].forEach((w) => {
3503
+ classes.push({ name: `outline-${w}`, css: `.outline-${w} { outline-width: ${w}px; }` });
3504
+ });
3505
+ classes.push({ name: "outline", css: ".outline { outline-style: solid; }" });
3506
+ classes.push({ name: "outline-none", css: ".outline-none { outline: 2px solid transparent; outline-offset: 2px; }" });
3507
+ ["none", "solid", "dashed", "dotted", "double"].forEach((s) => {
3508
+ classes.push({ name: `outline-${s}`, css: `.outline-${s} { outline-style: ${s}; }` });
3509
+ });
3510
+ ["0", "1", "2", "4", "8"].forEach((o) => {
3511
+ classes.push({ name: `outline-offset-${o}`, css: `.outline-offset-${o} { outline-offset: ${o}px; }` });
3512
+ });
3513
+ ["0", "1", "2", "4", "8"].forEach((w) => {
3514
+ const value = w === "0" ? "0px" : `${w}px`;
3515
+ classes.push({
3516
+ name: `ring-${w}`,
3517
+ css: `.ring-${w} { --j-ring-offset-shadow: var(--j-ring-inset) 0 0 0 var(--j-ring-offset-width) var(--j-ring-offset-color); --j-ring-shadow: var(--j-ring-inset) 0 0 0 calc(${value} + var(--j-ring-offset-width)) var(--j-ring-color); box-shadow: var(--j-ring-offset-shadow), var(--j-ring-shadow), var(--j-shadow, 0 0 #0000); }`
3518
+ });
3519
+ });
3520
+ classes.push({
3521
+ name: "ring",
3522
+ css: ".ring { --j-ring-offset-shadow: var(--j-ring-inset) 0 0 0 var(--j-ring-offset-width) var(--j-ring-offset-color); --j-ring-shadow: var(--j-ring-inset) 0 0 0 calc(3px + var(--j-ring-offset-width)) var(--j-ring-color); box-shadow: var(--j-ring-offset-shadow), var(--j-ring-shadow), var(--j-shadow, 0 0 #0000); }"
3523
+ });
3524
+ classes.push({ name: "ring-inset", css: ".ring-inset { --j-ring-inset: inset; }" });
3525
+ return {
3526
+ css: classes.map((c) => c.css).join("\n"),
3527
+ classes
3528
+ };
3529
+ }
3530
+ var init_borders = __esm({
3531
+ "src/core/utilities/borders.js"() {
3532
+ }
3533
+ });
3534
+
3427
3535
  // src/core/utilities/index.js
3428
3536
  function generateUtilities(config, options = {}) {
3429
3537
  const { usedClasses, includeAll = false } = options;
@@ -3617,6 +3725,7 @@ var init_utilities = __esm({
3617
3725
  init_scroll();
3618
3726
  init_svg();
3619
3727
  init_accessibility();
3728
+ init_borders();
3620
3729
  utilityGenerators = {
3621
3730
  layout: generateLayoutUtilities,
3622
3731
  spacing: generateSpacingUtilities,
@@ -3631,7 +3740,8 @@ var init_utilities = __esm({
3631
3740
  columns: generateColumnUtilities,
3632
3741
  scroll: generateScrollUtilities,
3633
3742
  svg: generateSvgUtilities,
3634
- accessibility: generateAccessibilityUtilities
3743
+ accessibility: generateAccessibilityUtilities,
3744
+ borders: generateBorderUtilities
3635
3745
  };
3636
3746
  }
3637
3747
  });
@@ -4886,7 +4996,7 @@ input[type="range"].form-control::-webkit-slider-thumb:hover {
4886
4996
 
4887
4997
  .form-floating > .form-control:focus ~ .form-label,
4888
4998
  .form-floating > .form-control:not(:placeholder-shown) ~ .form-label {
4889
- transform: scale(0.85) translateY(-0.5rem));
4999
+ transform: scale(0.85) translateY(-0.5rem);
4890
5000
  color: var(--j-primary);
4891
5001
  }
4892
5002