@sableui/react 0.9.1 → 0.10.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/AGENTS.md +1 -1
- package/CHANGELOG.md +95 -0
- package/CONTRIBUTING.md +2 -2
- package/DESIGN.md +55 -16
- package/README.md +12 -0
- package/dist/{_contract-C2M1SjBf.d.ts → _contract-CkqXDVww.d.ts} +25 -2
- package/dist/blocks/danger-zone-block.js +3 -3
- package/dist/blocks/danger-zone-block.meta.js +1 -1
- package/dist/blocks/faq-block.js +3 -3
- package/dist/blocks/goal-progress-block.js +1 -1
- package/dist/blocks/notification-list-block.js +1 -1
- package/dist/blocks/pricing-table-block.js +12 -12
- package/dist/blocks/product-card-block.js +3 -3
- package/dist/blocks/product-card-block.meta.js +3 -3
- package/dist/blocks/profile-card-block.js +1 -1
- package/dist/blocks/profile-form-block.js +3 -3
- package/dist/blocks/revenue-breakdown-block.js +5 -5
- package/dist/blocks/stat-row-block.js +3 -3
- package/dist/blocks/task-list-block.js +2 -2
- package/dist/blocks/team-members-block.js +1 -1
- package/dist/blocks/wallet-block.js +4 -4
- package/dist/blocks/wallet-block.meta.js +3 -3
- package/dist/components/accordion/accordion.meta.js +2 -2
- package/dist/components/app-header/app-header.meta.js +1 -1
- package/dist/components/app-shell/app-shell.meta.js +2 -2
- package/dist/components/area-chart/area-chart.meta.js +3 -3
- package/dist/components/badge/badge.js +13 -4
- package/dist/components/badge/badge.meta.js +24 -13
- package/dist/components/badge/badge.variants.js +37 -23
- package/dist/components/banner/banner.meta.js +8 -8
- package/dist/components/banner/banner.variants.js +3 -3
- package/dist/components/bar-chart/bar-chart.meta.js +4 -4
- package/dist/components/breadcrumbs/breadcrumbs.meta.js +1 -1
- package/dist/components/button/button.meta.js +3 -3
- package/dist/components/card/card.js +16 -7
- package/dist/components/card/card.meta.js +4 -4
- package/dist/components/checkbox-card/checkbox-card.meta.js +10 -10
- package/dist/components/checkbox-card/checkbox-card.variants.js +15 -15
- package/dist/components/code-block/code-block.meta.js +1 -1
- package/dist/components/command-menu/command-menu.meta.js +1 -1
- package/dist/components/context-card/context-card.meta.js +2 -2
- package/dist/components/destructive-action-modal/destructive-action-modal.meta.js +1 -1
- package/dist/components/dialog/dialog.meta.js +2 -2
- package/dist/components/disclosure-picker/disclosure-picker.js +48 -2
- package/dist/components/disclosure-picker/disclosure-picker.meta.js +3 -2
- package/dist/components/empty-state/empty-state.meta.js +4 -4
- package/dist/components/gradient-art/gradient-art.meta.js +3 -3
- package/dist/components/label/label.meta.js +1 -1
- package/dist/components/line-chart/line-chart.meta.js +3 -3
- package/dist/components/meter/meter.js +1 -1
- package/dist/components/meter/meter.meta.js +2 -2
- package/dist/components/meter/meter.variants.js +1 -1
- package/dist/components/middle-truncate/middle-truncate.meta.js +4 -4
- package/dist/components/note/note.meta.js +3 -3
- package/dist/components/page-header/page-header.js +1 -1
- package/dist/components/pagination/pagination.meta.js +2 -2
- package/dist/components/phone/phone.meta.js +1 -1
- package/dist/components/pie-chart/pie-chart.meta.js +3 -3
- package/dist/components/pill/pill.js +4 -2
- package/dist/components/pill/pill.meta.js +19 -2
- package/dist/components/pill/pill.variants.js +23 -2
- package/dist/components/popover/popover.meta.js +2 -2
- package/dist/components/radar-chart/radar-chart.meta.js +3 -3
- package/dist/components/radial-chart/radial-chart.meta.js +3 -3
- package/dist/components/radio/radio.meta.js +2 -2
- package/dist/components/radio-card/radio-card.meta.js +6 -6
- package/dist/components/radio-card/radio-card.variants.js +15 -15
- package/dist/components/scroller/scroller.meta.js +1 -1
- package/dist/components/search-input/search-input.meta.js +1 -1
- package/dist/components/section-header/section-header.js +1 -1
- package/dist/components/segmented-bar/segmented-bar.js +1 -1
- package/dist/components/segmented-bar/segmented-bar.meta.js +6 -6
- package/dist/components/segmented-bar/segmented-bar.variants.js +4 -4
- package/dist/components/select/select.meta.js +2 -2
- package/dist/components/sheet/sheet.meta.js +1 -1
- package/dist/components/side-nav/side-nav.meta.js +1 -1
- package/dist/components/sidebar/sidebar.meta.js +1 -1
- package/dist/components/sparkline/sparkline.meta.js +4 -4
- package/dist/components/spinner/spinner.meta.js +1 -1
- package/dist/components/status-dot/status-dot.js +4 -1
- package/dist/components/status-dot/status-dot.meta.js +8 -16
- package/dist/components/status-dot/status-dot.variants.js +13 -4
- package/dist/components/table/table.meta.js +4 -4
- package/dist/components/tabs/tabs.meta.js +1 -1
- package/dist/components/textarea/textarea.meta.js +2 -2
- package/dist/components/toast/toast.meta.js +1 -1
- package/dist/components/tooltip/tooltip.meta.js +2 -2
- package/dist/file-hashes.json +120 -118
- package/dist/foundations/spacing.js +8 -8
- package/dist/index.d.ts +137 -72
- package/dist/index.js +12 -1
- package/dist/lib/chart/types.js +3 -3
- package/dist/lib/palette.js +103 -0
- package/dist/lib/selection-card.js +4 -4
- package/dist/palette.css +669 -0
- package/dist/patterns/auth-page.js +6 -6
- package/dist/patterns/auth-page.meta.js +3 -3
- package/dist/patterns/brand-landing-page.js +2 -2
- package/dist/patterns/chat-panel.js +2 -2
- package/dist/patterns/dashboard-page.js +71 -71
- package/dist/patterns/dashboard-page.meta.js +5 -5
- package/dist/patterns/feed-page.js +25 -25
- package/dist/patterns/feed-page.meta.js +3 -3
- package/dist/patterns/landing-page.js +1 -1
- package/dist/patterns/list-detail-page.js +17 -17
- package/dist/patterns/settings-page.js +17 -17
- package/dist/presets/index.d.ts +1 -1
- package/dist/presets/index.js +17 -2
- package/dist/styles.css +115 -50
- package/dist/{theme-provider-S0NVJs2Y.d.ts → theme-provider-CdSicAad.d.ts} +1 -1
- package/dist/themes/_contract.js +22 -8
- package/dist/themes/atelier/atelier.css +13 -13
- package/dist/themes/atelier/index.d.ts +1 -1
- package/dist/themes/ember/ember.css +13 -13
- package/dist/themes/ember/index.d.ts +1 -1
- package/dist/themes/index.d.ts +2 -2
- package/dist/themes/meridian/index.d.ts +1 -1
- package/dist/themes/meridian/meridian.css +13 -13
- package/dist/themes/poppy/index.d.ts +1 -1
- package/dist/themes/poppy/poppy.css +19 -16
- package/dist/themes/prism/index.d.ts +1 -1
- package/dist/themes/prism/prism.css +18 -15
- package/dist/themes/sable/index.d.ts +1 -1
- package/dist/themes/sable/sable.css +18 -22
- package/dist/themes/verdant/index.d.ts +1 -1
- package/dist/themes/verdant/verdant.css +15 -15
- package/llms/blocks/danger-zone-block.md +4 -4
- package/llms/blocks/faq-block.md +3 -3
- package/llms/blocks/goal-progress-block.md +1 -1
- package/llms/blocks/notification-list-block.md +1 -1
- package/llms/blocks/pricing-table-block.md +12 -12
- package/llms/blocks/product-card-block.md +6 -6
- package/llms/blocks/profile-card-block.md +1 -1
- package/llms/blocks/profile-form-block.md +3 -3
- package/llms/blocks/revenue-breakdown-block.md +5 -5
- package/llms/blocks/stat-row-block.md +3 -3
- package/llms/blocks/task-list-block.md +2 -2
- package/llms/blocks/team-members-block.md +1 -1
- package/llms/blocks/wallet-block.md +7 -7
- package/llms/components/accordion.md +2 -2
- package/llms/components/app-header.md +1 -1
- package/llms/components/app-shell.md +2 -2
- package/llms/components/area-chart.md +1 -1
- package/llms/components/badge.md +15 -7
- package/llms/components/banner.md +6 -6
- package/llms/components/bar-chart.md +2 -2
- package/llms/components/breadcrumbs.md +1 -1
- package/llms/components/button.md +3 -3
- package/llms/components/card.md +4 -4
- package/llms/components/checkbox-card.md +5 -5
- package/llms/components/code-block.md +1 -1
- package/llms/components/command-menu.md +1 -1
- package/llms/components/context-card.md +2 -2
- package/llms/components/destructive-action-modal.md +1 -1
- package/llms/components/dialog.md +2 -2
- package/llms/components/disclosure-picker.md +2 -1
- package/llms/components/empty-state.md +4 -4
- package/llms/components/gradient-art.md +3 -3
- package/llms/components/label.md +1 -1
- package/llms/components/line-chart.md +1 -1
- package/llms/components/meter.md +2 -2
- package/llms/components/middle-truncate.md +5 -5
- package/llms/components/note.md +3 -3
- package/llms/components/pagination.md +2 -2
- package/llms/components/phone.md +1 -1
- package/llms/components/pie-chart.md +1 -1
- package/llms/components/pill.md +12 -2
- package/llms/components/popover.md +2 -2
- package/llms/components/radar-chart.md +1 -1
- package/llms/components/radial-chart.md +1 -1
- package/llms/components/radio-card.md +4 -4
- package/llms/components/radio.md +2 -2
- package/llms/components/scroller.md +1 -1
- package/llms/components/search-input.md +1 -1
- package/llms/components/segmented-bar.md +7 -7
- package/llms/components/select.md +2 -2
- package/llms/components/sheet.md +1 -1
- package/llms/components/side-nav.md +1 -1
- package/llms/components/sidebar.md +1 -1
- package/llms/components/sparkline.md +2 -2
- package/llms/components/spinner.md +1 -1
- package/llms/components/status-dot.md +4 -4
- package/llms/components/table.md +8 -8
- package/llms/components/tabs.md +1 -1
- package/llms/components/textarea.md +2 -2
- package/llms/components/toast.md +1 -1
- package/llms/components/tooltip.md +2 -2
- package/llms/foundations/spacing.md +7 -7
- package/llms/layout/grid.md +1 -1
- package/llms/layout/page.md +1 -1
- package/llms/layout/region.md +1 -1
- package/llms/layout/split-pane.md +1 -1
- package/llms/patterns/auth-page.md +11 -11
- package/llms/patterns/brand-landing-page.md +2 -2
- package/llms/patterns/chat-panel.md +2 -2
- package/llms/patterns/dashboard-page.md +78 -78
- package/llms/patterns/feed-page.md +31 -31
- package/llms/patterns/landing-page.md +1 -1
- package/llms/patterns/list-detail-page.md +18 -18
- package/llms/patterns/settings-page.md +18 -18
- package/llms/reference/token-intent.md +25 -11
- package/llms/reference/utilities.md +1 -1
- package/llms/tasks/adding-a-component.md +4 -1
- package/llms/tasks/building-a-page.md +40 -0
- package/llms/tasks/converting-an-app.md +3 -1
- package/llms/tasks/using-presets.md +4 -0
- package/llms-full.txt +429 -347
- package/llms.txt +7 -7
- package/package.json +4 -4
- package/registry.json +369 -233
- package/scripts/lint-rules.mjs +26 -5
- package/skills/sable/SKILL.md +14 -3
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// src/lib/palette.ts
|
|
2
|
+
var PALETTE_STEPS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];
|
|
3
|
+
var PALETTE_FAMILIES = [
|
|
4
|
+
{ name: "red", hue: 25, light: { l: 0.6, c: 0.21 }, dark: { l: 0.64, c: 0.2 } },
|
|
5
|
+
{ name: "orange", hue: 50, light: { l: 0.69, c: 0.18 }, dark: { l: 0.71, c: 0.17 } },
|
|
6
|
+
// Yellow is only yellow when it is light; at 0.6 it is olive.
|
|
7
|
+
{ name: "yellow", hue: 92, light: { l: 0.83, c: 0.16 }, dark: { l: 0.82, c: 0.15 } },
|
|
8
|
+
{ name: "green", hue: 145, light: { l: 0.64, c: 0.17 }, dark: { l: 0.68, c: 0.16 } },
|
|
9
|
+
{ name: "teal", hue: 190, light: { l: 0.7, c: 0.12 }, dark: { l: 0.74, c: 0.12 } },
|
|
10
|
+
{ name: "blue", hue: 262, light: { l: 0.6, c: 0.19 }, dark: { l: 0.64, c: 0.17 } },
|
|
11
|
+
{ name: "purple", hue: 305, light: { l: 0.56, c: 0.22 }, dark: { l: 0.64, c: 0.2 } },
|
|
12
|
+
{ name: "pink", hue: 350, light: { l: 0.65, c: 0.2 }, dark: { l: 0.69, c: 0.18 } }
|
|
13
|
+
];
|
|
14
|
+
var PALETTE_COLORS = ["red", "orange", "yellow", "green", "teal", "blue", "purple", "pink"];
|
|
15
|
+
var isPaletteColor = (value) => PALETTE_COLORS.includes(value);
|
|
16
|
+
var PALETTE_SLOTS = {
|
|
17
|
+
wash: 100,
|
|
18
|
+
"wash-strong": 200,
|
|
19
|
+
edge: 300,
|
|
20
|
+
dot: 500,
|
|
21
|
+
solid: 700,
|
|
22
|
+
text: 800,
|
|
23
|
+
"solid-ink": 50
|
|
24
|
+
};
|
|
25
|
+
var PALETTE_TONES = ["tone-1", "tone-2", "tone-3", "tone-info", "tone-warning", "success", "destructive"];
|
|
26
|
+
var PALETTE_SCALES = ["neutral", ...PALETTE_FAMILIES.map((family) => family.name), ...PALETTE_TONES];
|
|
27
|
+
var STEP_CURVES = {
|
|
28
|
+
light: {
|
|
29
|
+
50: { target: 0.985, pull: 0.94, chroma: 0.12 },
|
|
30
|
+
100: { target: 0.985, pull: 0.86, chroma: 0.22 },
|
|
31
|
+
200: { target: 0.985, pull: 0.7, chroma: 0.4 },
|
|
32
|
+
300: { target: 0.985, pull: 0.5, chroma: 0.62 },
|
|
33
|
+
400: { target: 0.985, pull: 0.26, chroma: 0.85 },
|
|
34
|
+
500: { target: 0, pull: 0, chroma: 1 },
|
|
35
|
+
// The far half pulls toward the ink, by shares of whatever distance is
|
|
36
|
+
// left, so any anchor walks away from the page: a dark one (a deep tone)
|
|
37
|
+
// cannot turn back lighter, and a light one (yellow) still reaches text
|
|
38
|
+
// strength by 700 instead of stopping at olive.
|
|
39
|
+
600: { target: 0.2, pull: 0.2, chroma: 1 },
|
|
40
|
+
700: { target: 0.2, pull: 0.5, chroma: 0.92 },
|
|
41
|
+
800: { target: 0.2, pull: 0.6, chroma: 0.8 },
|
|
42
|
+
900: { target: 0.2, pull: 0.75, chroma: 0.66 },
|
|
43
|
+
950: { target: 0.2, pull: 0.88, chroma: 0.52 }
|
|
44
|
+
},
|
|
45
|
+
dark: {
|
|
46
|
+
50: { target: 0.17, pull: 0.93, chroma: 0.25 },
|
|
47
|
+
100: { target: 0.17, pull: 0.85, chroma: 0.32 },
|
|
48
|
+
200: { target: 0.17, pull: 0.7, chroma: 0.45 },
|
|
49
|
+
300: { target: 0.17, pull: 0.5, chroma: 0.62 },
|
|
50
|
+
400: { target: 0.17, pull: 0.27, chroma: 0.82 },
|
|
51
|
+
500: { target: 0, pull: 0, chroma: 1 },
|
|
52
|
+
600: { target: 0.97, pull: 0.2, chroma: 0.95 },
|
|
53
|
+
700: { target: 0.97, pull: 0.42, chroma: 0.8 },
|
|
54
|
+
800: { target: 0.97, pull: 0.6, chroma: 0.6 },
|
|
55
|
+
900: { target: 0.97, pull: 0.75, chroma: 0.42 },
|
|
56
|
+
950: { target: 0.97, pull: 0.88, chroma: 0.28 }
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
var NEUTRAL_MIX = {
|
|
60
|
+
50: 3,
|
|
61
|
+
100: 6,
|
|
62
|
+
200: 12,
|
|
63
|
+
300: 22,
|
|
64
|
+
400: 38,
|
|
65
|
+
500: 50,
|
|
66
|
+
600: 62,
|
|
67
|
+
700: 72,
|
|
68
|
+
800: 82,
|
|
69
|
+
900: 90,
|
|
70
|
+
950: 95
|
|
71
|
+
};
|
|
72
|
+
var TONE_CHROMA_CAP = {
|
|
73
|
+
light: { 50: 0.02, 100: 0.04, 200: 0.07, 300: 0.11 },
|
|
74
|
+
dark: { 50: 0.035, 100: 0.05, 200: 0.07, 300: 0.1 }
|
|
75
|
+
};
|
|
76
|
+
var LEAN = { amount: 0.5, cap: 15, fullAt: 0.06, maxHarmony: 2 };
|
|
77
|
+
var LEAN_REACH = LEAN.cap * LEAN.maxHarmony;
|
|
78
|
+
var clamp = (n, lo, hi) => Math.min(hi, Math.max(lo, n));
|
|
79
|
+
function familyHue(hue, brand, harmony = 1) {
|
|
80
|
+
const gap = ((brand.h - hue + 540) % 360 + 360) % 360 - 180;
|
|
81
|
+
const lean = clamp(gap * LEAN.amount, -LEAN.cap, LEAN.cap) * clamp(harmony, 0, LEAN.maxHarmony) * clamp(brand.c / LEAN.fullAt, 0, 1);
|
|
82
|
+
return ((hue + lean) % 360 + 360) % 360;
|
|
83
|
+
}
|
|
84
|
+
function stepFrom(anchor, step, mode) {
|
|
85
|
+
const curve = STEP_CURVES[mode][step];
|
|
86
|
+
return { l: anchor.l + (curve.target - anchor.l) * curve.pull, c: anchor.c * curve.chroma };
|
|
87
|
+
}
|
|
88
|
+
export {
|
|
89
|
+
LEAN,
|
|
90
|
+
LEAN_REACH,
|
|
91
|
+
NEUTRAL_MIX,
|
|
92
|
+
PALETTE_COLORS,
|
|
93
|
+
PALETTE_FAMILIES,
|
|
94
|
+
PALETTE_SCALES,
|
|
95
|
+
PALETTE_SLOTS,
|
|
96
|
+
PALETTE_STEPS,
|
|
97
|
+
PALETTE_TONES,
|
|
98
|
+
STEP_CURVES,
|
|
99
|
+
TONE_CHROMA_CAP,
|
|
100
|
+
familyHue,
|
|
101
|
+
isPaletteColor,
|
|
102
|
+
stepFrom
|
|
103
|
+
};
|
|
@@ -14,12 +14,12 @@ var SELECTION_CARD_LAYOUT = {
|
|
|
14
14
|
};
|
|
15
15
|
var SELECTION_CARD_TILE_HEAD = "flex w-full items-start justify-between gap-3";
|
|
16
16
|
var SELECTION_CARD_GLYPH = "shrink-0 text-2xl leading-none motion-interactive";
|
|
17
|
-
var SELECTION_CARD_TONES = ["neutral", "
|
|
17
|
+
var SELECTION_CARD_TONES = ["neutral", "3", "2", "1", "info", "warning"];
|
|
18
18
|
var SELECTION_CARD_CHECKED = {
|
|
19
19
|
neutral: "data-[checked]:border-transparent data-[checked]:ring-[1.5px] data-[checked]:ring-inset data-[checked]:ring-primary data-[checked]:bg-muted",
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
"3": "data-[checked]:border-transparent data-[checked]:ring-[1.5px] data-[checked]:ring-inset data-[checked]:ring-tone-3",
|
|
21
|
+
"2": "data-[checked]:border-transparent data-[checked]:ring-[1.5px] data-[checked]:ring-inset data-[checked]:ring-tone-2",
|
|
22
|
+
"1": "data-[checked]:border-transparent data-[checked]:ring-[1.5px] data-[checked]:ring-inset data-[checked]:ring-tone-1",
|
|
23
23
|
info: "data-[checked]:border-transparent data-[checked]:ring-[1.5px] data-[checked]:ring-inset data-[checked]:ring-tone-info",
|
|
24
24
|
warning: "data-[checked]:border-transparent data-[checked]:ring-[1.5px] data-[checked]:ring-inset data-[checked]:ring-tone-warning"
|
|
25
25
|
};
|