paris 0.24.0 → 0.24.1

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.
Files changed (63) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +2 -2
  3. package/dist/stories/accordion/Accordion.module.scss.js +1 -1
  4. package/dist/stories/accordionselect/AccordionSelect.module.scss.js +1 -1
  5. package/dist/stories/avatar/Avatar.module.scss.js +1 -1
  6. package/dist/stories/button/Button.module.scss.js +1 -1
  7. package/dist/stories/callout/Callout.module.scss.js +1 -1
  8. package/dist/stories/card/Card.module.scss.js +1 -1
  9. package/dist/stories/cardbutton/CardButton.module.scss.js +1 -1
  10. package/dist/stories/checkbox/Checkbox.module.scss.js +1 -1
  11. package/dist/stories/codeinput/CodeInput.module.scss.js +1 -1
  12. package/dist/stories/dialog/Dialog.module.scss.js +1 -1
  13. package/dist/stories/drawer/Drawer.module.scss.js +1 -1
  14. package/dist/stories/informationaltooltip/InformationalTooltip.module.scss.js +1 -1
  15. package/dist/stories/input/Input.module.scss.js +1 -1
  16. package/dist/stories/markdown/Markdown.module.scss.js +1 -1
  17. package/dist/stories/markdowneditor/FixedToolbar.module.scss.js +1 -1
  18. package/dist/stories/markdowneditor/FloatingToolbar.module.scss.js +1 -1
  19. package/dist/stories/markdowneditor/LinkPopover.module.scss.js +1 -1
  20. package/dist/stories/markdowneditor/MarkdownEditor.module.scss.js +1 -1
  21. package/dist/stories/markdowneditor/ToolbarButton.module.scss.js +1 -1
  22. package/dist/stories/menu/Menu.module.scss.js +1 -1
  23. package/dist/stories/popover/Popover.module.scss.js +1 -1
  24. package/dist/stories/select/Select.module.scss.js +1 -1
  25. package/dist/stories/styledlink/StyledLink.module.scss.js +1 -1
  26. package/dist/stories/table/Table.module.scss.js +1 -1
  27. package/dist/stories/tabs/Tabs.module.scss.js +1 -1
  28. package/dist/stories/tag/Tag.module.scss.js +1 -1
  29. package/dist/stories/text/Text.module.scss.js +1 -1
  30. package/dist/stories/text/Typography.module.css.js +1 -1
  31. package/dist/stories/tilt/Tilt.module.scss.js +1 -1
  32. package/dist/stories/toast/Toast.module.scss.js +1 -1
  33. package/package.json +2 -2
  34. /package/dist/stories/accordion/{Accordion.module.css → Accordion.css} +0 -0
  35. /package/dist/stories/accordionselect/{AccordionSelect.module.css → AccordionSelect.css} +0 -0
  36. /package/dist/stories/avatar/{Avatar.module.css → Avatar.css} +0 -0
  37. /package/dist/stories/button/{Button.module.css → Button.css} +0 -0
  38. /package/dist/stories/callout/{Callout.module.css → Callout.css} +0 -0
  39. /package/dist/stories/card/{Card.module.css → Card.css} +0 -0
  40. /package/dist/stories/cardbutton/{CardButton.module.css → CardButton.css} +0 -0
  41. /package/dist/stories/checkbox/{Checkbox.module.css → Checkbox.css} +0 -0
  42. /package/dist/stories/codeinput/{CodeInput.module.css → CodeInput.css} +0 -0
  43. /package/dist/stories/dialog/{Dialog.module.css → Dialog.css} +0 -0
  44. /package/dist/stories/drawer/{Drawer.module.css → Drawer.css} +0 -0
  45. /package/dist/stories/informationaltooltip/{InformationalTooltip.module.css → InformationalTooltip.css} +0 -0
  46. /package/dist/stories/input/{Input.module.css → Input.css} +0 -0
  47. /package/dist/stories/markdown/{Markdown.module.css → Markdown.css} +0 -0
  48. /package/dist/stories/markdowneditor/{FixedToolbar.module.css → FixedToolbar.css} +0 -0
  49. /package/dist/stories/markdowneditor/{FloatingToolbar.module.css → FloatingToolbar.css} +0 -0
  50. /package/dist/stories/markdowneditor/{LinkPopover.module.css → LinkPopover.css} +0 -0
  51. /package/dist/stories/markdowneditor/{MarkdownEditor.module.css → MarkdownEditor.css} +0 -0
  52. /package/dist/stories/markdowneditor/{ToolbarButton.module.css → ToolbarButton.css} +0 -0
  53. /package/dist/stories/menu/{Menu.module.css → Menu.css} +0 -0
  54. /package/dist/stories/popover/{Popover.module.css → Popover.css} +0 -0
  55. /package/dist/stories/select/{Select.module.css → Select.css} +0 -0
  56. /package/dist/stories/styledlink/{StyledLink.module.css → StyledLink.css} +0 -0
  57. /package/dist/stories/table/{Table.module.css → Table.css} +0 -0
  58. /package/dist/stories/tabs/{Tabs.module.css → Tabs.css} +0 -0
  59. /package/dist/stories/tag/{Tag.module.css → Tag.css} +0 -0
  60. /package/dist/stories/text/{Text.module.css → Text.css} +0 -0
  61. /package/dist/stories/text/{Typography.module.css → Typography.css} +0 -0
  62. /package/dist/stories/tilt/{Tilt.module.css → Tilt.css} +0 -0
  63. /package/dist/stories/toast/{Toast.module.css → Toast.css} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # paris
2
2
 
3
+ ## 0.24.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 83fdca9: Fix: ship per-component CSS as plain `.css` instead of `.module.css`
8
+
9
+ v0.24.0 emitted each component's extracted CSS as a `*.module.css` file while baking the (already globally-unique) `paris_<local>_<hash>` class names into the compiled JS as literal strings. Consumer bundlers that honor the CSS-Modules naming convention (Next.js and Vite both do) re-scoped those files a second time — rewriting the selector to `.Button-module__<hash>__paris_button_<hash>`, which no longer matched the class Paris applied to the element. The result was that **every component rendered unstyled**.
10
+
11
+ The build now renames each extracted `*.module.css` to plain `*.css` and rewrites the JS side-effect import to match, so downstream bundlers treat the CSS as global (already-scoped) and leave the class names alone. Class names, the `exports` map, `sideEffects`, and the `paris/styles.css` aggregate are unchanged. Verified end-to-end in Next.js App Router and Vite React (computed `display: flex` on a rendered Button).
12
+
3
13
  ## 0.24.0
4
14
 
5
15
  ### Minor Changes
package/README.md CHANGED
@@ -10,11 +10,11 @@ Paris 1.x styling is heavily inspired by Uber's [Base Web](https://baseweb.desig
10
10
 
11
11
  ## Upgrading from a pre-0.24 version?
12
12
 
13
- As of **v0.24**, Paris ships precompiled — so you can **remove** `transpilePackages: ['paris']` and the `sass` dependency, and switch your global-styles import to `paris/theme/global.css`. Component import paths are unchanged.
13
+ As of **v0.24**, Paris ships precompiled — so you can **remove** `transpilePackages: ['paris']` and the `sass` dependency, and switch your global-styles import to `paris/theme/global.css`. Component import paths are unchanged. (Use **`^0.24.1`** or newer — 0.24.0 had a CSS packaging bug that left components unstyled.)
14
14
 
15
15
  The easiest way to upgrade is to **hand it to your coding agent**. Copy the prompt below into Claude Code, Cursor, or any agent working in your repo:
16
16
 
17
- > Upgrade this project's `paris` dependency to the latest v0.24+. Follow the official migration guide at https://paris.slingshot.fm/migrate-0.24.md carefully and step by step — fetch and read the whole guide first, make only the changes it describes, and run the project's build/typecheck at the end to confirm everything passes. Report exactly what you changed.
17
+ > Upgrade this project's `paris` dependency to `^0.24.1` (or newer). Follow the official migration guide at https://paris.slingshot.fm/migrate-0.24.md carefully and step by step — fetch and read the whole guide first, make only the changes it describes, and run the project's build/typecheck at the end to confirm everything passes. Report exactly what you changed.
18
18
 
19
19
  Prefer to do it by hand? The same guide is here: **[Migration guide → v0.24](https://paris.slingshot.fm/migrate-0.24.md)**.
20
20
 
@@ -1,4 +1,4 @@
1
- import './Accordion.module.css';const toggleIcon = "paris_toggleIcon_Aqg7R";
1
+ import './Accordion.css';const toggleIcon = "paris_toggleIcon_Aqg7R";
2
2
  const open = "paris_open_Anlum";
3
3
  const title = "paris_title_quAkj";
4
4
  const plusIcon = "paris_plusIcon_vUae0";
@@ -1,4 +1,4 @@
1
- import './AccordionSelect.module.css';const root = "paris_root_66wcQ";
1
+ import './AccordionSelect.css';const root = "paris_root_66wcQ";
2
2
  const open = "paris_open_FCY1A";
3
3
  const header = "paris_header_PKn63";
4
4
  const headerContent = "paris_headerContent_GYCii";
@@ -1,4 +1,4 @@
1
- import './Avatar.module.css';const content = "paris_content_ckGnM";
1
+ import './Avatar.css';const content = "paris_content_ckGnM";
2
2
  const styles = {
3
3
  content: content
4
4
  };
@@ -1,4 +1,4 @@
1
- import './Button.module.css';const button = "paris_button_1IoaA";
1
+ import './Button.css';const button = "paris_button_1IoaA";
2
2
  const primary = "paris_primary_WZ3V2";
3
3
  const secondary = "paris_secondary_PPwS-";
4
4
  const tertiary = "paris_tertiary_YxJ8t";
@@ -1,4 +1,4 @@
1
- import './Callout.module.css';const content = "paris_content_RTtwv";
1
+ import './Callout.css';const content = "paris_content_RTtwv";
2
2
  const icon = "paris_icon_bhM1o";
3
3
  const warning = "paris_warning_cREVK";
4
4
  const negative = "paris_negative_6a2uj";
@@ -1,4 +1,4 @@
1
- import './Card.module.css';const container = "paris_container_PRpOa";
1
+ import './Card.css';const container = "paris_container_PRpOa";
2
2
  const raised = "paris_raised_o1LwV";
3
3
  const pending = "paris_pending_VDHaM";
4
4
  const surface = "paris_surface_qR0mA";
@@ -1,4 +1,4 @@
1
- import './CardButton.module.css';const container = "paris_container_yNfv5";
1
+ import './CardButton.css';const container = "paris_container_yNfv5";
2
2
  const card = "paris_card_ORTWc";
3
3
  const text = "paris_text_JEY3p";
4
4
  const raised = "paris_raised_GtoCs";
@@ -1,4 +1,4 @@
1
- import './Checkbox.module.css';const container = "paris_container_hJlaN";
1
+ import './Checkbox.css';const container = "paris_container_hJlaN";
2
2
  const containerbutton = "paris_containerbutton_H-e8h";
3
3
  const disabled = "paris_disabled_R5-D0";
4
4
  const root = "paris_root_w6zlF";
@@ -1,4 +1,4 @@
1
- import './CodeInput.module.css';const container = "paris_container_IcGkk";
1
+ import './CodeInput.css';const container = "paris_container_IcGkk";
2
2
  const loading = "paris_loading_qeyK6";
3
3
  const segment = "paris_segment_lMDZE";
4
4
  const error = "paris_error_Yls6v";
@@ -1,4 +1,4 @@
1
- import './Dialog.module.css';const root = "paris_root_2Y6y9";
1
+ import './Dialog.css';const root = "paris_root_2Y6y9";
2
2
  const overlay = "paris_overlay_YZZ8Z";
3
3
  const overlayBlur = "paris_overlayBlur_8Wx1-";
4
4
  const overlayGrey = "paris_overlayGrey_xDbBD";
@@ -1,4 +1,4 @@
1
- import './Drawer.module.css';const root = "paris_root_wVedw";
1
+ import './Drawer.css';const root = "paris_root_wVedw";
2
2
  const overlay = "paris_overlay_WN57R";
3
3
  const overlayBlur = "paris_overlayBlur_W12Sf";
4
4
  const overlayGrey = "paris_overlayGrey_q3bTn";
@@ -1,4 +1,4 @@
1
- import './InformationalTooltip.module.css';const tooltip = "paris_tooltip_QdB1w";
1
+ import './InformationalTooltip.css';const tooltip = "paris_tooltip_QdB1w";
2
2
  const medium = "paris_medium_7veyJ";
3
3
  const heading = "paris_heading_wQIgt";
4
4
  const styles = {
@@ -1,4 +1,4 @@
1
- import './Input.module.css';const inputContainer = "paris_inputContainer_a8TwY";
1
+ import './Input.css';const inputContainer = "paris_inputContainer_a8TwY";
2
2
  const inputScaleWrapper = "paris_inputScaleWrapper_XVKDd";
3
3
  const enhancer = "paris_enhancer_dWZ5z";
4
4
  const container = "paris_container_4aoux";
@@ -1,4 +1,4 @@
1
- import './Markdown.module.css';const markdown = "paris_markdown_xr6-T";
1
+ import './Markdown.css';const markdown = "paris_markdown_xr6-T";
2
2
  const heading = "paris_heading_YY-2-";
3
3
  const paragraph = "paris_paragraph_e4anz";
4
4
  const strikethrough = "paris_strikethrough_zLlkK";
@@ -1,4 +1,4 @@
1
- import './FixedToolbar.module.css';const toolbar = "paris_toolbar_FAd-9";
1
+ import './FixedToolbar.css';const toolbar = "paris_toolbar_FAd-9";
2
2
  const group = "paris_group_I1JpH";
3
3
  const separator = "paris_separator_qPb-B";
4
4
  const styles = {
@@ -1,4 +1,4 @@
1
- import './FloatingToolbar.module.css';const toolbar = "paris_toolbar_ALJP3";
1
+ import './FloatingToolbar.css';const toolbar = "paris_toolbar_ALJP3";
2
2
  const separator = "paris_separator_qOWSq";
3
3
  const styles = {
4
4
  toolbar: toolbar,
@@ -1,4 +1,4 @@
1
- import './LinkPopover.module.css';const popover = "paris_popover_NuqJ8";
1
+ import './LinkPopover.css';const popover = "paris_popover_NuqJ8";
2
2
  const label = "paris_label_U8nq1";
3
3
  const inputRow = "paris_inputRow_pIHbL";
4
4
  const input = "paris_input_faso5";
@@ -1,4 +1,4 @@
1
- import './MarkdownEditor.module.css';const root = "paris_root_AbYRN";
1
+ import './MarkdownEditor.css';const root = "paris_root_AbYRN";
2
2
  const editorContainer = "paris_editorContainer_9v7gh";
3
3
  const editorContent = "paris_editorContent_WTm2y";
4
4
  const styles = {
@@ -1,4 +1,4 @@
1
- import './ToolbarButton.module.css';const button = "paris_button_o-kCm";
1
+ import './ToolbarButton.css';const button = "paris_button_o-kCm";
2
2
  const styles = {
3
3
  button: button
4
4
  };
@@ -1,4 +1,4 @@
1
- import './Menu.module.css';const menu = "paris_menu_HYnWi";
1
+ import './Menu.css';const menu = "paris_menu_HYnWi";
2
2
  const menuItems = "paris_menuItems_QbqR7";
3
3
  const menuItem = "paris_menuItem_snmkz";
4
4
  const newItem = "paris_newItem_LE830";
@@ -1,4 +1,4 @@
1
- import './Popover.module.css';const trigger = "paris_trigger_NZC4B";
1
+ import './Popover.css';const trigger = "paris_trigger_NZC4B";
2
2
  const content = "paris_content_qDvSV";
3
3
  const styles = {
4
4
  trigger: trigger,
@@ -1,4 +1,4 @@
1
- import './Select.module.css';const container = "paris_container_p9NzC";
1
+ import './Select.css';const container = "paris_container_p9NzC";
2
2
  const listboxButton = "paris_listboxButton_cDH7o";
3
3
  const chevron = "paris_chevron_A3qpw";
4
4
  const field = "paris_field_moc6-";
@@ -1,4 +1,4 @@
1
- import './StyledLink.module.css';const link = "paris_link_3T5Qd";
1
+ import './StyledLink.css';const link = "paris_link_3T5Qd";
2
2
  const styles = {
3
3
  link: link
4
4
  };
@@ -1,4 +1,4 @@
1
- import './Table.module.css';const table = "paris_table_BdqlG";
1
+ import './Table.css';const table = "paris_table_BdqlG";
2
2
  const tableHeader = "paris_tableHeader_Uz1-B";
3
3
  const empty = "paris_empty_5JeGO";
4
4
  const clickable = "paris_clickable_g4EbF";
@@ -1,4 +1,4 @@
1
- import './Tabs.module.css';const tabList = "paris_tabList_oiZCx";
1
+ import './Tabs.css';const tabList = "paris_tabList_oiZCx";
2
2
  const thick = "paris_thick_v-JaE";
3
3
  const thin = "paris_thin_JoVrb";
4
4
  const full = "paris_full_iRdoV";
@@ -1,4 +1,4 @@
1
- import './Tag.module.css';const tag = "paris_tag_QE3dx";
1
+ import './Tag.css';const tag = "paris_tag_QE3dx";
2
2
  const normal = "paris_normal_8yko9";
3
3
  const rectangle = "paris_rectangle_0M8zy";
4
4
  const sharp = "paris_sharp_Qf5k1";
@@ -1,4 +1,4 @@
1
- import './Text.module.css';const text = "paris_text_RV-f-";
1
+ import './Text.css';const text = "paris_text_RV-f-";
2
2
  const styles = {
3
3
  text: text,
4
4
  "weight-thin": "paris_weight-thin_VdyKV",
@@ -1,4 +1,4 @@
1
- import './Typography.module.css';const displayLarge = "paris_displayLarge_5a9iJ";
1
+ import './Typography.css';const displayLarge = "paris_displayLarge_5a9iJ";
2
2
  const displayMedium = "paris_displayMedium_2lnZv";
3
3
  const display = "paris_display_gJawE";
4
4
  const displaySmall = "paris_displaySmall_pR3fw";
@@ -1,4 +1,4 @@
1
- import './Tilt.module.css';const container = "paris_container_LkvM4";
1
+ import './Tilt.css';const container = "paris_container_LkvM4";
2
2
  const glareWrapper = "paris_glareWrapper_V80bN";
3
3
  const glare = "paris_glare_5v3J7";
4
4
  const styles = {
@@ -1,4 +1,4 @@
1
- import './Toast.module.css';const toast = "paris_toast_5rwNh";
1
+ import './Toast.css';const toast = "paris_toast_5rwNh";
2
2
  const styles = {
3
3
  toast: toast
4
4
  };
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "paris",
3
3
  "author": "Sanil Chawla <sanil@slingshot.fm> (https://sanil.co)",
4
4
  "description": "Paris is Slingshot's React design system. It's a collection of reusable components, design tokens, and guidelines that help us build consistent, accessible, and performant user interfaces.",
5
- "version": "0.24.0",
5
+ "version": "0.24.1",
6
6
  "type": "module",
7
7
  "sideEffects": [
8
8
  "**/*.css",
@@ -31,7 +31,7 @@
31
31
  "storybook"
32
32
  ],
33
33
  "scripts": {
34
- "build": "bun run generate:exports && vite build && node scripts/buildThemeCss.mjs",
34
+ "build": "bun run generate:exports && vite build && node scripts/postbuild.mjs",
35
35
  "build:site": "next build",
36
36
  "prepack": "bun run build",
37
37
  "storybook": "storybook dev -p 6006",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes