@pandacss/preset-base 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1512,6 +1512,101 @@ var flexGrid = {
1512
1512
  }
1513
1513
  };
1514
1514
 
1515
+ // src/utilities/focus-ring.ts
1516
+ function createFocusRing(selector, className) {
1517
+ return {
1518
+ className,
1519
+ group: "Focus Ring",
1520
+ values: ["outside", "inside", "mixed", "none"],
1521
+ transform(value) {
1522
+ const fallback = "var(--global-color-focus-ring, #005FCC)";
1523
+ const focusRingColor = `var(--focus-ring-color-prop, ${fallback})`;
1524
+ switch (value) {
1525
+ case "inside":
1526
+ return {
1527
+ "--focus-ring-color": focusRingColor,
1528
+ [selector]: {
1529
+ outlineOffset: "0px",
1530
+ outlineWidth: "var(--focus-ring-width, 1px)",
1531
+ outlineColor: "var(--focus-ring-color)",
1532
+ outlineStyle: "var(--focus-ring-style, solid)",
1533
+ borderColor: "var(--focus-ring-color)"
1534
+ }
1535
+ };
1536
+ case "outside":
1537
+ return {
1538
+ "--focus-ring-color": focusRingColor,
1539
+ [selector]: {
1540
+ outlineWidth: "var(--focus-ring-width, 2px)",
1541
+ outlineOffset: "var(--focus-ring-offset, 2px)",
1542
+ outlineStyle: "var(--focus-ring-style, solid)",
1543
+ outlineColor: "var(--focus-ring-color)"
1544
+ }
1545
+ };
1546
+ case "mixed":
1547
+ return {
1548
+ "--focus-ring-color": focusRingColor,
1549
+ [selector]: {
1550
+ outlineOffset: "0px",
1551
+ outlineWidth: "var(--focus-ring-width, 3px)",
1552
+ outlineStyle: "var(--focus-ring-style, solid)",
1553
+ outlineColor: "color-mix(in srgb, var(--focus-ring-color), transparent 60%)",
1554
+ borderColor: "var(--focus-ring-color)"
1555
+ }
1556
+ };
1557
+ case "none":
1558
+ return {
1559
+ "--focus-ring-color": focusRingColor,
1560
+ [selector]: {
1561
+ outline: "none"
1562
+ }
1563
+ };
1564
+ default:
1565
+ return {};
1566
+ }
1567
+ }
1568
+ };
1569
+ }
1570
+ var focusRing = {
1571
+ focusRing: createFocusRing("&:is(:focus, [data-focus])", "focus-ring"),
1572
+ focusVisibleRing: createFocusRing("&:is(:focus-visible, [data-focus-visible])", "focus-v-ring"),
1573
+ focusRingColor: {
1574
+ className: "focus-ring-c",
1575
+ values: "colors",
1576
+ group: "Focus Ring",
1577
+ transform(value, { utils }) {
1578
+ const prop = "--focus-ring-color-prop";
1579
+ const mix = utils.colorMix(value);
1580
+ if (mix.invalid) return { [prop]: value };
1581
+ const cssVar = "--mix-" + prop;
1582
+ return {
1583
+ [cssVar]: mix.value,
1584
+ [prop]: `var(${cssVar}, ${mix.color})`
1585
+ };
1586
+ }
1587
+ },
1588
+ focusRingOffset: {
1589
+ className: "focus-ring-o",
1590
+ values: "spacing",
1591
+ group: "Focus Ring",
1592
+ transform: (v) => ({ "--focus-ring-offset": v })
1593
+ },
1594
+ focusRingWidth: {
1595
+ className: "focus-ring-w",
1596
+ values: "borderWidths",
1597
+ property: "outlineWidth",
1598
+ group: "Focus Ring",
1599
+ transform: (v) => ({ "--focus-ring-width": v })
1600
+ },
1601
+ focusRingStyle: {
1602
+ className: "focus-ring-s",
1603
+ values: "borderStyles",
1604
+ property: "outlineStyle",
1605
+ group: "Focus Ring",
1606
+ transform: (v) => ({ "--focus-ring-style": v })
1607
+ }
1608
+ };
1609
+
1515
1610
  // src/utilities/gradient.ts
1516
1611
  var gradientVia = createColorMixTransform("--gradient-via");
1517
1612
  var linearGradientDirectionMap = /* @__PURE__ */ new Map([
@@ -3189,6 +3284,7 @@ var utilities = Object.assign(
3189
3284
  flexGrid,
3190
3285
  spacing,
3191
3286
  outline,
3287
+ focusRing,
3192
3288
  divide,
3193
3289
  sizing,
3194
3290
  typography,
package/dist/index.mjs CHANGED
@@ -1485,6 +1485,101 @@ var flexGrid = {
1485
1485
  }
1486
1486
  };
1487
1487
 
1488
+ // src/utilities/focus-ring.ts
1489
+ function createFocusRing(selector, className) {
1490
+ return {
1491
+ className,
1492
+ group: "Focus Ring",
1493
+ values: ["outside", "inside", "mixed", "none"],
1494
+ transform(value) {
1495
+ const fallback = "var(--global-color-focus-ring, #005FCC)";
1496
+ const focusRingColor = `var(--focus-ring-color-prop, ${fallback})`;
1497
+ switch (value) {
1498
+ case "inside":
1499
+ return {
1500
+ "--focus-ring-color": focusRingColor,
1501
+ [selector]: {
1502
+ outlineOffset: "0px",
1503
+ outlineWidth: "var(--focus-ring-width, 1px)",
1504
+ outlineColor: "var(--focus-ring-color)",
1505
+ outlineStyle: "var(--focus-ring-style, solid)",
1506
+ borderColor: "var(--focus-ring-color)"
1507
+ }
1508
+ };
1509
+ case "outside":
1510
+ return {
1511
+ "--focus-ring-color": focusRingColor,
1512
+ [selector]: {
1513
+ outlineWidth: "var(--focus-ring-width, 2px)",
1514
+ outlineOffset: "var(--focus-ring-offset, 2px)",
1515
+ outlineStyle: "var(--focus-ring-style, solid)",
1516
+ outlineColor: "var(--focus-ring-color)"
1517
+ }
1518
+ };
1519
+ case "mixed":
1520
+ return {
1521
+ "--focus-ring-color": focusRingColor,
1522
+ [selector]: {
1523
+ outlineOffset: "0px",
1524
+ outlineWidth: "var(--focus-ring-width, 3px)",
1525
+ outlineStyle: "var(--focus-ring-style, solid)",
1526
+ outlineColor: "color-mix(in srgb, var(--focus-ring-color), transparent 60%)",
1527
+ borderColor: "var(--focus-ring-color)"
1528
+ }
1529
+ };
1530
+ case "none":
1531
+ return {
1532
+ "--focus-ring-color": focusRingColor,
1533
+ [selector]: {
1534
+ outline: "none"
1535
+ }
1536
+ };
1537
+ default:
1538
+ return {};
1539
+ }
1540
+ }
1541
+ };
1542
+ }
1543
+ var focusRing = {
1544
+ focusRing: createFocusRing("&:is(:focus, [data-focus])", "focus-ring"),
1545
+ focusVisibleRing: createFocusRing("&:is(:focus-visible, [data-focus-visible])", "focus-v-ring"),
1546
+ focusRingColor: {
1547
+ className: "focus-ring-c",
1548
+ values: "colors",
1549
+ group: "Focus Ring",
1550
+ transform(value, { utils }) {
1551
+ const prop = "--focus-ring-color-prop";
1552
+ const mix = utils.colorMix(value);
1553
+ if (mix.invalid) return { [prop]: value };
1554
+ const cssVar = "--mix-" + prop;
1555
+ return {
1556
+ [cssVar]: mix.value,
1557
+ [prop]: `var(${cssVar}, ${mix.color})`
1558
+ };
1559
+ }
1560
+ },
1561
+ focusRingOffset: {
1562
+ className: "focus-ring-o",
1563
+ values: "spacing",
1564
+ group: "Focus Ring",
1565
+ transform: (v) => ({ "--focus-ring-offset": v })
1566
+ },
1567
+ focusRingWidth: {
1568
+ className: "focus-ring-w",
1569
+ values: "borderWidths",
1570
+ property: "outlineWidth",
1571
+ group: "Focus Ring",
1572
+ transform: (v) => ({ "--focus-ring-width": v })
1573
+ },
1574
+ focusRingStyle: {
1575
+ className: "focus-ring-s",
1576
+ values: "borderStyles",
1577
+ property: "outlineStyle",
1578
+ group: "Focus Ring",
1579
+ transform: (v) => ({ "--focus-ring-style": v })
1580
+ }
1581
+ };
1582
+
1488
1583
  // src/utilities/gradient.ts
1489
1584
  var gradientVia = createColorMixTransform("--gradient-via");
1490
1585
  var linearGradientDirectionMap = /* @__PURE__ */ new Map([
@@ -3162,6 +3257,7 @@ var utilities = Object.assign(
3162
3257
  flexGrid,
3163
3258
  spacing,
3164
3259
  outline,
3260
+ focusRing,
3165
3261
  divide,
3166
3262
  sizing,
3167
3263
  typography,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pandacss/preset-base",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "The base preset for Panda CSS that contains the conditions and utilities",
5
5
  "author": "Segun Adebayo <joseshegs@gmail.com>",
6
6
  "main": "dist/index.js",
@@ -32,7 +32,7 @@
32
32
  "dist"
33
33
  ],
34
34
  "dependencies": {
35
- "@pandacss/types": "1.1.0"
35
+ "@pandacss/types": "1.2.0"
36
36
  },
37
37
  "scripts": {
38
38
  "build": "tsup src/index.ts --format=esm,cjs --dts",