@tui/design-system 5.0.0-beta.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 (3) hide show
  1. package/CHANGELOG.md +239 -0
  2. package/README.md +71 -0
  3. package/package.json +181 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,239 @@
1
+ # Changelog
2
+
3
+ ## v5.0.0
4
+
5
+ ### General changes
6
+
7
+ - Mixins available have been reduced to simplify use of the library. Mixins for components now have class names baked in to aid in code consistency
8
+ across TUI, although these can be overridden by updating the SASS variables if required.
9
+ - Theming
10
+ - TUI Light has been renamed to TUI
11
+ - Removed support for TUI, TUI Magic Life, Robinson, LTUR and Airtours themes. TUI, Crystal Ski, First Choice and VIP selection remain fully
12
+ supported
13
+ - Removed support for dark theme. This may be added again in a future release.
14
+ - Assets - All assets used within the library now reference the v3 version of the asset library
15
+ - SCSS provided now uses @use and @forward. Mixins need to be imported as individual modules where they are required and can not be loaded once and
16
+ used globally anymore.
17
+ - Update reset stylesheet.
18
+ - Box model is set to box-sizing on all elements by default to help with flexible layouts which we are used more often within our builds.
19
+ - Tokens
20
+ - All tokens have been updated to match the token naming for the master figma files. This has resulted in a vastly reduced number of base tokens
21
+ that reference primitive variables for each theme. Individual components may have their own tokens that map back to these base tokens for each
22
+ theme as nessessary.
23
+ - App height is now set to 100dvh removing the requirement to use JS to fix the viewport height on mobile devices when the browser toolbars disapear
24
+ on scroll.
25
+
26
+ ### [Typography](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/globals-typography--docs)
27
+
28
+ - All webfonts have fallbacks with f-mods specified to minimise CLS when the webfonts load
29
+ - New mixin for generic heading and copy styling classes
30
+ - Modifer mixin updated to remove options covered by css variables
31
+
32
+ ### [Breakpoints](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/globals-breakpoints--docs)
33
+
34
+ - New xxs breakpoint included to further control styling where required. This breakpoint is used for grids so that below 320px content will simply
35
+ stack and remain readable and usable.
36
+
37
+ ### [Grid](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/globals-grid--docs)
38
+
39
+ - Design System now uses CSS Grid Layout Module instead of Flexbox
40
+
41
+ ### [Accordion](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-accordion--docs)
42
+
43
+ - Reduced down to single variant with border, also replacing elevations.
44
+ - Two group styling options available
45
+ - Option to include a logo next to the accordion heading has been added for where a collection of logos is required
46
+ - Notification label replaced by option to include a sub title
47
+ - Mixins simplified so variants and states are all baked into the main uilib-accordion mixin, with a second mixin uilib-accordion-group for styling
48
+ groups of accordions
49
+ - Rebuilt to use native details, summary elements; fixing various accessibility and usability issues
50
+ - JavaScript provided to support expand/collapse all functionality where 5 or more accordions are in a group.
51
+
52
+ ### [Alert](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-alert--docs)
53
+
54
+ - Mixins simplified so variants are all baked into the main uilib-alert mixin
55
+ - Default variant has been removed in line with 1web design patterns
56
+
57
+ ### [Active tag](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-active-tag--docs)
58
+
59
+ - New component added to indicate which filters are currently applied. They allow users to easily modify their search and filtering criteria, making
60
+ the results easier to refine.
61
+
62
+ ### [Breadcrumb](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-breadcrumb--docs)
63
+
64
+ - Created new component, all the styles are baked into a single uilib-breadcrumb mixin
65
+ - Breadcrumb inherits styles from it's base Link and Icon components
66
+
67
+ ### [Button](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-button--docs)
68
+
69
+ - Mixins simplified so variants, states and sizes are all baked into the main uilib-button mixin
70
+ - Button styling has been aligned with the latest 1web designs across all themes
71
+
72
+ ### [Divider](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-divider--docs)
73
+
74
+ - Mixins simplified so vertical, size and variant are all baked into the main uilib-divider mixin
75
+ - Title option has been removed
76
+ - Colour variants have been reduced to default, strong and inverse
77
+ - New dashed divider style has been added
78
+
79
+ ### [Flyout Dropdown](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-flyout-dropdown--docs)
80
+
81
+ - New flyout component has been added. It is an overlay panel that emerges from a control like a button or menu item
82
+ - Two variants available with three pointer locations
83
+
84
+ ### Forms
85
+
86
+ #### [Form row](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-forms-form-row--docs)
87
+
88
+ - Replacing the base input styling provided in v4
89
+ - Success message styling removed
90
+
91
+ #### [Input checkbox](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-forms-input-checkbox--docs)
92
+
93
+ - Mixins simplified to one main uilib-input-checkbox mixin
94
+ - Error, valid states removed
95
+ - New checkbox label variant options included
96
+ - New confirmation checkbox variant included
97
+
98
+ #### [Input count](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-forms-input-count--docs)
99
+
100
+ - Mixins simplified to one main uilib-input-count mixin
101
+ - Variants removed to match latest 1web designs
102
+ - Error, valid and disabled states removed
103
+ - Count limited to maximum of 7 options
104
+ - Can now support text as well as numbers within the count input
105
+
106
+ #### [Input radio](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-forms-input-radio--docs)
107
+
108
+ - Mixins simplified to one main uilib-input-radio mixin
109
+ - Error, valid states removed
110
+ - New radio label variant options included
111
+
112
+ #### [Input slider](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-forms-input-slider--docs)
113
+
114
+ - Mixin renamed to uilib-input-slider
115
+ - Valid state removed
116
+ - Input text is now required to aid accessibility and the range input is added via JavaScript to ensure the fields are properly connected
117
+
118
+ #### [Input stepper](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-forms-input-stepper--docs)
119
+
120
+ - Mixins simplified to one main uilib-input-stepper mixin
121
+ - Control and input sizes have been adjusted to match latest 1web designs
122
+ - Web component provided to include increment and decrement controls to update the original text input
123
+
124
+ #### [Input text](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-forms-input-text--docs)
125
+
126
+ - Mixin renamed to uilib-input-text
127
+ - Floating label, placeholder and readonly options have been removed
128
+ - Valid state usage rules and styling updated
129
+ - Web component provided to clear prefilled inputs, clear search inputs and toggle view of password fields
130
+
131
+ ### [Icon](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-icon--docs)
132
+
133
+ - Mixins simplified so size options are now baked into the main uilib-icon mixin
134
+ - Icon sizes have been adjusted to match latest designs
135
+
136
+ ### [Icon button](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-icon-button--docs)
137
+
138
+ - Mixins simplified so size options are now baked into the main uilib-icon-button mixin
139
+ - Half icon button has been removed
140
+ - Button styling has been aligned with the latest 1web designs across all themes.
141
+
142
+ ### [Image](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-image--docs)
143
+
144
+ - Mixins simplified so shapes and ratios are all baked into the main uilib-image mixin
145
+ - Error handling with fallback image has been added.
146
+
147
+ ### [Info tag](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-info-tag--docs)
148
+
149
+ - New component added to highlight informational, promotional or branded content
150
+ - Four variants available: neutral, info, scarcity, and local-product
151
+
152
+ ### [Link](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-link--docs)
153
+
154
+ - Mixins simplified so size options are now baked into the main uilib-link mixin
155
+ - Links styling has been aligned to match latest designs
156
+ - Link variants have been removed as well as disabled state
157
+
158
+ ### [List](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-list--docs)
159
+
160
+ - Divider, state, and meta label style options removed
161
+ - Basic bullet list no longer requires icon setting reducing markup
162
+ - New image variant added with square or circular image options
163
+
164
+ ### [Loader](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-loader--docs)
165
+
166
+ - Mixins simplified so size options are now baked into the main uilib-loader mixin
167
+ - TUI ripple loader option removed
168
+ - Snowflake and FC-loader options are now controlled by theming rather than being specific options
169
+ - Option to include visible loading message now included for all size variants
170
+ - Overlay mixin removed with no replacement. Placement of loader is developers responsibility. The loader will always position centered (vertically
171
+ and horizontally) within the 'uilib-loader' element.
172
+
173
+ ### [Media button](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-media-button--docs)
174
+
175
+ - New media button has been added for opening media galleries
176
+
177
+ ### [Pagination](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-pagination--docs)
178
+
179
+ - Mixins are baked into uilib-pagination mixin
180
+
181
+ ### [Price](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-price--docs)
182
+
183
+ - Mixins simplified so size options are baked into a single uilib-price mixin
184
+ - Component styles are aligned with latest 1web designs for tui theme
185
+ - xLarge variant has been removed
186
+
187
+ ### [Promo tag](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-promo-tag--docs)
188
+
189
+ - Mixin names and classes updated to be prefixed with uilib
190
+ - Background variant renamed to filled
191
+ - Additional mixin for list of promo tags added
192
+
193
+ ### Ratings and Reviews
194
+
195
+ #### [Numerical](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-ratings-and-reviews-numerical--docs) (previously Review base variant)
196
+
197
+ - Mixins simplified to single mixin controlling numerical rating/review styles uilib-ratings-numerical
198
+ - Now single size option available with small and xsmall being removed
199
+ - New variant added for providing alternative styling to use with musement ratings
200
+
201
+ #### [Percentage](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-ratings-and-reviews-percentage--docs)
202
+
203
+ - New component that can be used for displaying HolidayCheck reviews
204
+ - Provides two variants; default and compact
205
+
206
+ #### [Range icons](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-ratings-and-reviews-range-icons--docs) (previously Rating)
207
+
208
+ - Mixins simplified to single mixin controlling range icon rating/review styles uilib-ratings-range-icons
209
+ - Added tripadvisor variant
210
+ - Group styling option included
211
+
212
+ #### [Range icon group](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-ratings-and-reviews-range-icons-group--docs)
213
+
214
+ - New component to display lists of range icons for use with the likes of TripAdvisor
215
+
216
+ ### [Rich Text](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-rich-text--docs)
217
+
218
+ - New component added that provides a wrapper that automatically styles basic html content such as headings, paragaphs, links, lists etc. This allows
219
+ for simple and consistent styling of rich text content from CMS/APIs.
220
+
221
+ ### [Scroller](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-scroller--docs)
222
+
223
+ - Mixins simplified so scrollbar and fade-out options are baked into a single uilib-scroller mixin
224
+ - Fade is applied by default
225
+ - Fade effect is applied via modern CSS techniques
226
+ - Small web component provided to improve accessibility support
227
+
228
+ ### [Show more/less](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-show-more-or-less--docs)
229
+
230
+ - New component added to hide and reveal content, in order to save space and support visual balance and hierarchy or information
231
+ - Two variants available. Default displays the first paragraph of content hiding the rest, Text only truncates a block of content (for use with
232
+ content such as customer reviews)
233
+
234
+ ### [Toolip](https://uilib-testing.static-nonprod.browse.tui/index.html?path=/docs/components-tooltip--docs)
235
+
236
+ - Mixins simplified to one main uilib-tooltip mixin
237
+ - Tooltip now opens on click or enter rather than hover
238
+ - JavaScript controls tooltip positioning and ensures the tooltip is read by assistive technologies, with a non-JavaScript fallback provided
239
+ - Hit target for icon variant increased improving accessibility for all user
package/README.md ADDED
@@ -0,0 +1,71 @@
1
+ # TUI Design System
2
+
3
+ https://uilib-testing.static-nonprod.browse.tui/index.html
4
+
5
+ ## Quick Start
6
+
7
+ ```
8
+ nvm use
9
+ npm i
10
+ npm run dev
11
+ ```
12
+
13
+ This will spin up:
14
+
15
+ - storybook: http://localhost:6006/
16
+
17
+ ## How to use it
18
+
19
+ **Installation**
20
+
21
+ To install the latest stable version:
22
+
23
+ `npm install @tui/ui-library` or `yarn add @tui/ui-library`
24
+
25
+ To install the next major version (be aware it might contain untested features):
26
+
27
+ `npm install @tui/ui-library@next` or `yarn add @tui/ui-library@next`
28
+
29
+ **Themes**
30
+
31
+ Theme files provide some global variables that are needed by the components in order to adhere to the theme guidelines (colors, spacing, etc.). TUI is
32
+ the only available theme at the moment.
33
+
34
+ In `dist/themes/<<themename>>/`, you will find the theme file `style.css` as well as other global stylesheets. For example, for the TUI theme you
35
+ could import in your .js files:
36
+
37
+ ```js
38
+ import '@tui/ui-library/dist/themes/tui/index.css';
39
+ import '@tui/ui-library/dist/themes/tui/fonts.css';
40
+ ```
41
+
42
+ Themes variables are declared within the "data-theme" attribute selector, so you will need to add it on either the host page `html` tag or your MFE:
43
+
44
+ ```html
45
+ <html data-theme="tui">
46
+ <!--or-->
47
+ <my-custom-mfe data-theme="tui">
48
+ <!--or-->
49
+ <div data-theme="tui"></div
50
+ ></my-custom-mfe>
51
+ </html>
52
+ ```
53
+
54
+ ## Development mode
55
+
56
+ You can also clone this repository, install the dependencies and use `npm run dev` to run a local server where to check the example templates for the
57
+ components, how themes are generated, the original unprocessed stylesheets (post processed with postcss-preset-env), etc.
58
+
59
+ ## Contributing
60
+
61
+ Your feedback is welcome. You may request changes and improvements by creating an Issue on the
62
+ [UI Library (UILIB)](https://tui.atlassian.net/jira/software/c/projects/UILIB/boards/2275/backlog) project in Jira. If you have a general query about
63
+ the Design System you are welcome to post in the
64
+ [UI Library Support channel](https://teams.microsoft.com/l/channel/19%3A537d7e30d4284701a3b985a0763f7b2e%40thread.tacv2/Support%20UI%20Library?groupId=237c9a11-b89a-449e-8d69-416a09bd8f55&tenantId=e3e1f65b-b973-440d-b61c-bc895fc98e28)
65
+ on Teams.
66
+
67
+ Please check the [contributing document](/docs/CONTRIBUTING.md) and the [guidelines](/docs/GUIDELINES.md) for contribution.
68
+
69
+ ## Migration
70
+
71
+ Please check the [migration document](/docs/MIGRATION.md)
package/package.json ADDED
@@ -0,0 +1,181 @@
1
+ {
2
+ "name": "@tui/design-system",
3
+ "version": "5.0.0-beta.1",
4
+ "description": "TUI Design System",
5
+ "author": "TUI Group",
6
+ "contributors": [
7
+ "Matthew Guyader-Squirrell <matthew.squirrell@tui.co.uk>",
8
+ "Nicky Bliss <nicky.bliss@tui.co.uk>",
9
+ "Cy Culpin <cy.culpin@tui.co.uk>",
10
+ "Oleksandr Talanov <oleksandr.talanov@tui.co.uk>",
11
+ "Elias Meyer <elias.meyer@tui.com>",
12
+ "Volodymyr Savchuk <volodymyr.savchuk@tui.com>"
13
+ ],
14
+ "scripts": {
15
+ "prepare": "node .husky/install.mjs",
16
+ "ci": "commit",
17
+ "clean": "shx rm -rf lib dist",
18
+ "prebuild": "npm run set-scss-env",
19
+ "build": "node cli/index.mjs",
20
+ "build:primitives": "node cli/process-primitives.mjs",
21
+ "build:js": "node cli/process-webcomponent-ts.mjs",
22
+ "build:changelog": "node cli/change-log.mjs",
23
+ "dev": "dotenv -e .env.local npm run storybook:dev",
24
+ "test:sass": "jest --verbose ./test/sass-true",
25
+ "storybook:dev": "run-s static:build build:primitives build:changelog set-scss-env storybook:serve",
26
+ "storybook:build": "run-s static:build build:primitives build:js build:changelog set-scss-env _storybook:build_prod",
27
+ "storybook:serve": "storybook dev -p 6006 -c storybook/.storybook",
28
+ "_storybook:build_prod": "storybook build -c storybook/.storybook",
29
+ "static:build": "node cli/static-assets.mjs",
30
+ "lint:styles": "stylelint \"src/**/*.{scss,css}\" --fix",
31
+ "lint:styles:ci": "stylelint \"src/**/*.{scss,css}\"",
32
+ "lint:standard": "eslint \"storybook/**/*.{js,ts}\" \"cli/*.mjs\" --config eslint.config.mjs --fix --ignore-pattern \"storybook/.storybook/**\" --no-warn-ignored",
33
+ "lint:standard:ci": "eslint \"storybook/**/*.{js,ts}\" \"cli/*.mjs\" --config eslint.config.mjs --ignore-pattern \"storybook/.storybook/**\" --no-warn-ignored",
34
+ "lint:storybook": "eslint storybook/.storybook --config eslint.storybook.config.mjs --no-error-on-unmatched-pattern --fix",
35
+ "lint:storybook:ci": "eslint storybook/.storybook --config eslint.storybook.config.mjs --no-error-on-unmatched-pattern --fix",
36
+ "lint": "npm run lint:standard && npm run lint:storybook",
37
+ "lint:ci": "npm run lint:standard:ci && npm run lint:storybook:ci",
38
+ "prettier": "prettier --ignore-unknown --write .",
39
+ "prettier:ci": "prettier --ignore-unknown --check .",
40
+ "scss:compile": "sass --no-source-map --style=expanded utils/scss/input:utils/scss/output",
41
+ "set-scss-env": "echo \"\\$uilib-assets-base-url: '${ASSETS_BASE_URL}' !default;\" > ./src/variables/_env-variables.scss",
42
+ "ci:lint": "bash ./ci-scripts/lint.sh",
43
+ "ci:check:ts": "echo 'Probably not needed anymore, use `ci:lint`' && exit 0",
44
+ "ci:code-tests": "bash ./ci-scripts/code-tests.sh",
45
+ "ci:install": "bash ./ci-scripts/install.sh",
46
+ "ci:build": "bash ./ci-scripts/build.sh",
47
+ "ci:deploy:feat": "bash ./ci-scripts/deploy/deploy-feature.sh",
48
+ "ci:deploy:testing": "bash ./ci-scripts/deploy/deploy-testing.sh",
49
+ "ci:destroy:feat": " bash ./ci-scripts/destroy/destroy-feature.sh"
50
+ },
51
+ "files": [
52
+ "dist",
53
+ "lib",
54
+ "scss",
55
+ "CHANGELOG.md",
56
+ "CONTRIBUTING.md"
57
+ ],
58
+ "repository": {
59
+ "type": "git",
60
+ "url": "git@ssh.source.tui:osp/browse/design-system/uilib.git"
61
+ },
62
+ "devDependencies": {
63
+ "@babel/core": "^7.25.2",
64
+ "@babel/eslint-parser": "^7.28.5",
65
+ "@babel/preset-env": "^7.25.2",
66
+ "@babel/preset-react": "^7.26.3",
67
+ "@babel/preset-typescript": "^7.28.5",
68
+ "@commitlint/cli": "^20.1.0",
69
+ "@commitlint/config-conventional": "^20.0.0",
70
+ "@eslint/compat": "^2.0.0",
71
+ "@eslint/js": "^9.38.0",
72
+ "@jest/globals": "^30.2.0",
73
+ "@storybook/addon-a11y": "^8.4.7",
74
+ "@storybook/addon-docs": "^8.4.7",
75
+ "@storybook/addon-essentials": "^8.4.7",
76
+ "@storybook/addon-links": "^8.4.7",
77
+ "@storybook/addon-themes": "^8.4.7",
78
+ "@storybook/blocks": "^8.4.7",
79
+ "@storybook/html": "^8.4.7",
80
+ "@storybook/html-webpack5": "^8.4.7",
81
+ "@storybook/manager-api": "^8.4.7",
82
+ "@storybook/preview-api": "^8.4.7",
83
+ "@storybook/theming": "^8.4.7",
84
+ "@stylistic/eslint-plugin": "^3.1.0",
85
+ "@types/js-beautify": "^1.14.3",
86
+ "@types/node": "^24.9.1",
87
+ "@typescript-eslint/eslint-plugin": "^8.46.2",
88
+ "@typescript-eslint/parser": "^8.46.2",
89
+ "aws-cdk-lib": "^2.220.0",
90
+ "babel-loader": "^10.0.0",
91
+ "copyfiles": "^2.4.1",
92
+ "css-loader": "7.1.2",
93
+ "deepmerge": "^4.3.1",
94
+ "dotenv": "^17.2.3",
95
+ "dotenv-cli": "^11.0.0",
96
+ "esbuild": "^0.27.0",
97
+ "eslint": "^9.38.0",
98
+ "eslint-config-airbnb-extended": "^2.3.2",
99
+ "eslint-config-prettier": "^10.0.1",
100
+ "eslint-import-resolver-typescript": "^4.4.4",
101
+ "eslint-plugin-import": "^2.32.0",
102
+ "eslint-plugin-import-x": "^4.16.1",
103
+ "eslint-plugin-jsx-a11y": "^6.10.2",
104
+ "eslint-plugin-n": "^17.23.1",
105
+ "eslint-plugin-prettier": "^5.5.4",
106
+ "eslint-plugin-react": "^7.37.5",
107
+ "eslint-plugin-react-hooks": "^7.0.1",
108
+ "git-format-staged": "3.1.1",
109
+ "glob": "^13.0.0",
110
+ "husky": "^9.1.7",
111
+ "jest": "^30.2.0",
112
+ "js-beautify": "^1.15.1",
113
+ "lint-staged": "^16.2.6",
114
+ "log-update": "^7.0.2",
115
+ "node-fetch": "^3.3.2",
116
+ "npm-run-all2": "^8.0.4",
117
+ "postcss-scss": "^4.0.6",
118
+ "prettier": "^3.4.2",
119
+ "remark-gfm": "^4.0.0",
120
+ "sass": "^1.93.2",
121
+ "sass-loader": "^16.0.4",
122
+ "sass-true": "^10.0.0",
123
+ "shx": "0.4.0",
124
+ "source-map-support": "^0.5.21",
125
+ "storybook": "^8.4.7",
126
+ "storybook-addon-pseudo-states": "^4.0.2",
127
+ "storybook-addon-tag-badges": "^1.4.0",
128
+ "storybook-addon-turbo-build": "^2.0.1",
129
+ "storybook-dark-mode": "^4.0.2",
130
+ "storybook-preset-inline-svg": "^1.0.1",
131
+ "style-loader": "4.0.0",
132
+ "stylelint": "^16.25.0",
133
+ "stylelint-config-standard": "^39.0.1",
134
+ "stylelint-config-standard-scss": "^16.0.0",
135
+ "stylelint-order": "^7.0.0",
136
+ "stylelint-scss": "^6.10.1",
137
+ "stylelint-semantic-groups": "^1.2.1",
138
+ "ts-loader": "^9.5.2",
139
+ "ts-node": "^10.9.1",
140
+ "typescript": "^5.9.3",
141
+ "typescript-eslint": "^8.46.2",
142
+ "webpack": "^5.102.1"
143
+ },
144
+ "engines": {
145
+ "node": ">=22",
146
+ "npm": ">=10",
147
+ "pnpm": "please-use-npm"
148
+ },
149
+ "lint-staged": {
150
+ "*.{scss,css}": "npx stylelint \"src/**/*.{scss,css}\" --fix",
151
+ "*.{js,ts,mjs}": "npx eslint \"storybook/**/*.{js,ts}\" \"cli/*.mjs\" --config eslint.config.mjs --fix --ignore-pattern \"storybook/.storybook/**\" --no-warn-ignored",
152
+ "storybook/.storybook/**/*.{js,ts,mjs}": "npx eslint storybook/.storybook --config eslint.storybook.config.mjs --no-error-on-unmatched-pattern --fix",
153
+ "**/*": "npx prettier --write"
154
+ },
155
+ "loki": {
156
+ "configurations": {
157
+ "chrome.docker.tui": {
158
+ "target": "chrome.app",
159
+ "width": 1980,
160
+ "height": 1000,
161
+ "looks-same": {
162
+ "ignoreCaret": true
163
+ },
164
+ "storyQueryParams": {
165
+ "theme": "theme-tui"
166
+ }
167
+ },
168
+ "chrome.docker.tuiLight": {
169
+ "target": "chrome.app",
170
+ "width": 1980,
171
+ "height": 1000,
172
+ "looks-same": {
173
+ "ignoreCaret": true
174
+ },
175
+ "storyQueryParams": {
176
+ "theme": "theme-firstchoice"
177
+ }
178
+ }
179
+ }
180
+ }
181
+ }