Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 84 additions & 1 deletion bundle.config.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,23 @@
"core/print.css"
]
},
{
"output": "dist/slashed.essential.flat.css",
"flat": true,
"files": [
"core/layers.css",
"core/tokens.css",
"core/tokens.layout.css",
"core/reset.css",
"core/base.css",
"core/themes.css",
"core/layout.css",
"core/states.css",
"core/motion.css",
"core/accessibility.css",
"core/print.css"
]
},
{
"output": "dist/slashed.optimal.css",
"files": [
Expand All @@ -36,7 +53,7 @@
]
},
{
"output": "dist/slashed.bricks.css",
"output": "dist/slashed.optimal.flat.css",
"flat": true,
"files": [
"core/layers.css",
Expand Down Expand Up @@ -76,6 +93,28 @@
"optional/legacy.css"
]
},
{
"output": "dist/slashed.optimal-components.flat.css",
"flat": true,
"files": [
"core/layers.css",
"core/tokens.css",
"core/tokens.layout.css",
"core/reset.css",
"core/base.css",
"core/themes.css",
"core/layout.css",
"core/states.css",
"core/motion.css",
"core/accessibility.css",
"core/print.css",
"optional/tokens.palette.css",
"optional/forms.css",
"optional/tokens.components.css",
"optional/components.css",
"optional/legacy.css"
]
},
{
"output": "dist/slashed.optimal-utilities.css",
"files": [
Expand All @@ -96,6 +135,27 @@
"optional/legacy.css"
]
},
{
"output": "dist/slashed.optimal-utilities.flat.css",
"flat": true,
"files": [
"core/layers.css",
"core/tokens.css",
"core/tokens.layout.css",
"core/reset.css",
"core/base.css",
"core/themes.css",
"core/layout.css",
"core/states.css",
"core/motion.css",
"core/accessibility.css",
"core/print.css",
"optional/tokens.palette.css",
"optional/forms.css",
"optional/utilities.css",
"optional/legacy.css"
]
},
{
"output": "dist/slashed.full.css",
"files": [
Expand All @@ -117,6 +177,29 @@
"optional/utilities.css",
"optional/legacy.css"
]
},
{
"output": "dist/slashed.full.flat.css",
"flat": true,
"files": [
"core/layers.css",
"core/tokens.css",
"core/tokens.layout.css",
"core/reset.css",
"core/base.css",
"core/themes.css",
"core/layout.css",
"core/states.css",
"core/motion.css",
"core/accessibility.css",
"core/print.css",
"optional/tokens.palette.css",
"optional/forms.css",
"optional/tokens.components.css",
"optional/components.css",
"optional/utilities.css",
"optional/legacy.css"
]
}
]
}
1 change: 0 additions & 1 deletion dist/slashed.bricks.min.css.map

This file was deleted.

2,618 changes: 2,618 additions & 0 deletions dist/slashed.essential.flat.css

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions dist/slashed.essential.flat.min.css

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dist/slashed.essential.flat.min.css.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/slashed.essential.min.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/slashed.essential.min.css.map

Large diffs are not rendered by default.

3,307 changes: 3,307 additions & 0 deletions dist/slashed.full.flat.css

Large diffs are not rendered by default.

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dist/slashed.full.flat.min.css.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/slashed.full.min.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/slashed.full.min.css.map

Large diffs are not rendered by default.

3,299 changes: 3,299 additions & 0 deletions dist/slashed.optimal-components.flat.css

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions dist/slashed.optimal-components.flat.min.css

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dist/slashed.optimal-components.flat.min.css.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/slashed.optimal-components.min.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/slashed.optimal-components.min.css.map

Large diffs are not rendered by default.

3,290 changes: 3,290 additions & 0 deletions dist/slashed.optimal-utilities.flat.css

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions dist/slashed.optimal-utilities.flat.min.css

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dist/slashed.optimal-utilities.flat.min.css.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/slashed.optimal-utilities.min.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/slashed.optimal-utilities.min.css.map

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* SLASHED v0.2.10 β€” slashed.bricks.css (flat) */
/* SLASHED v0.2.10 β€” slashed.optimal.flat.css (flat) */

/* ─── core/layers.css ─── */
/* SLASHED β€” core/layers.css
Expand Down
2 changes: 2 additions & 0 deletions dist/slashed.optimal.flat.min.css

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dist/slashed.optimal.flat.min.css.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/slashed.optimal.min.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/slashed.optimal.min.css.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 6 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,16 @@
"exports": {
".": "./dist/slashed.full.css",
"./essential": "./dist/slashed.essential.css",
"./essential/flat": "./dist/slashed.essential.flat.css",
"./optimal": "./dist/slashed.optimal.css",
"./bricks": "./dist/slashed.bricks.css",
"./optimal/flat": "./dist/slashed.optimal.flat.css",
"./optimal-components": "./dist/slashed.optimal-components.css",
"./optimal-components/flat": "./dist/slashed.optimal-components.flat.css",
"./optimal-utilities": "./dist/slashed.optimal-utilities.css",
"./optimal-utilities/flat": "./dist/slashed.optimal-utilities.flat.css",
"./full": "./dist/slashed.full.css",
"./full/flat": "./dist/slashed.full.flat.css",
"./flat": "./dist/slashed.full.flat.css",
Comment on lines +12 to +21

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚑ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify export keys and check for existing references to the removed subpath.
python - <<'PY'
import json
p=json.load(open("package.json"))
exports=p.get("exports", {})
print("has ./bricks export:", "./bricks" in exports)
print("flat exports:", [k for k in exports if "flat" in k])
PY

# Internal references that may already rely on old path naming
rg -nP "slashed/bricks|['\"]\\./bricks['\"]|slashed\\.bricks\\.css" -g '!dist/**'

Repository: codeslash-dev/SLASHED

Length of output: 227


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Show relevant part of package.json around the exports map
python - <<'PY'
import json
p=json.load(open("package.json"))
exports=p.get("exports", {})
# Print keys in sorted order with their values (compact)
for k in sorted(exports.keys()):
    if "bricks" in k or k.startswith("./") and ("flat" in k or k in ["./bricks","./optimal/flat","./flat"]):
        print(k, "=>", exports[k])
PY

echo "---- package.json grep for bricks ----"
rg -n "bricks" package.json || true

echo "---- repo grep for bricks (excluding dist) ----"
rg -nP "slashed/bricks|['\"]\\./bricks['\"]|slashed\\.bricks\\.css" -g '!dist/**' || true

Repository: codeslash-dev/SLASHED

Length of output: 481


🏁 Script executed:

#!/bin/bash
set -euo pipefail

python - <<'PY'
import json
p=json.load(open("package.json"))
exports=p.get("exports", {})
keys=list(exports.keys())
for i,k in enumerate(keys):
    if k in ("./bricks","./core/*","./optional/*","./optimal/flat","./flat"):
        print(i,k,"=>",exports[k])
PY

python - <<'PY'
# Print a small excerpt of the exports keys in order (best-effort)
import json
p=json.load(open("package.json"))
exports=p.get("exports", {})
keys=list(exports.keys())
for k in keys[:40]:
    print(k,"=>",exports[k])
PY

Repository: codeslash-dev/SLASHED

Length of output: 863


Preserve ./bricks as a compatibility export (or ship an intentional major breaking change).

Dropping the ./bricks subpath from package.json will break existing consumers importing slashed/bricks at resolution time. Add a deprecated alias pointing to the existing ./optimal/flat bundle (./dist/slashed.optimal.flat.css).

Suggested compatibility patch
     "./full": "./dist/slashed.full.css",
     "./full/flat": "./dist/slashed.full.flat.css",
     "./flat": "./dist/slashed.full.flat.css",
+    "./bricks": "./dist/slashed.optimal.flat.css",
     "./core/*": "./core/*",
     "./optional/*": "./optional/*"
πŸ€– Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@package.json` around lines 12 - 21, Add back a compatibility export for the
removed subpath by adding an exports entry for "./bricks" that points to the
existing optimal flat bundle; specifically add "./bricks":
"./dist/slashed.optimal.flat.css" alongside the current "./optimal/flat" ->
"./dist/slashed.optimal.flat.css" mapping in package.json exports so imports of
"slashed/bricks" continue to resolve (you can mark it deprecated in your release
notes if desired).

"./core/*": "./core/*",
"./optional/*": "./optional/*"
},
Expand Down
4 changes: 2 additions & 2 deletions scripts/bundle.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ function findMatchingBrace(src, openPos) {

// Removes SLASHED's @layer scaffolding from a single source file's contents,
// producing flat unlayered CSS suitable for environments that already manage
// the cascade (e.g. Bricks Builder 2.0+ which wraps its defaults in
// `@layer bricks` β€” unlayered author CSS automatically beats it).
// the cascade themselves (e.g. a host that wraps its own defaults in a named
// layer β€” unlayered author CSS automatically beats anything in a layer).
//
// 1. `@layer name1, name2, … ;` declarations β†’ removed.
// 2. `@layer slashed.X { … }` block wrappers β†’ unwrapped (inner CSS kept,
Expand Down
Loading