@ni/nimble-components 35.3.3 → 35.3.4

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 (76) hide show
  1. package/dist/all-components-bundle.js +1261 -487
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +5644 -5038
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/custom-elements.json +416 -46
  6. package/dist/custom-elements.md +65 -23
  7. package/dist/esm/anchor/styles.js +1 -1
  8. package/dist/esm/anchor/styles.js.map +1 -1
  9. package/dist/esm/anchor-step/index.d.ts +50 -2
  10. package/dist/esm/anchor-step/index.js +58 -3
  11. package/dist/esm/anchor-step/index.js.map +1 -1
  12. package/dist/esm/anchor-step/styles.js +8 -2
  13. package/dist/esm/anchor-step/styles.js.map +1 -1
  14. package/dist/esm/anchor-step/template.d.ts +3 -1
  15. package/dist/esm/anchor-step/template.js +71 -3
  16. package/dist/esm/anchor-step/template.js.map +1 -1
  17. package/dist/esm/anchor-step/types.d.ts +7 -0
  18. package/dist/esm/anchor-step/types.js +3 -0
  19. package/dist/esm/anchor-step/types.js.map +1 -0
  20. package/dist/esm/breadcrumb-item/styles.js +1 -1
  21. package/dist/esm/breadcrumb-item/styles.js.map +1 -1
  22. package/dist/esm/patterns/severity/styles.d.ts +1 -0
  23. package/dist/esm/patterns/severity/styles.js +33 -0
  24. package/dist/esm/patterns/severity/styles.js.map +1 -0
  25. package/dist/esm/patterns/severity/template.d.ts +2 -0
  26. package/dist/esm/patterns/severity/template.js +10 -0
  27. package/dist/esm/patterns/severity/template.js.map +1 -0
  28. package/dist/esm/patterns/severity/testing/severity-pattern.pageobject.d.ts +12 -0
  29. package/dist/esm/patterns/severity/testing/severity-pattern.pageobject.js +36 -0
  30. package/dist/esm/patterns/severity/testing/severity-pattern.pageobject.js.map +1 -0
  31. package/dist/esm/patterns/severity/types.d.ts +31 -0
  32. package/dist/esm/patterns/severity/types.js +28 -0
  33. package/dist/esm/patterns/severity/types.js.map +1 -0
  34. package/dist/esm/patterns/step/models/step-internals.d.ts +8 -0
  35. package/dist/esm/patterns/step/models/step-internals.js +19 -0
  36. package/dist/esm/patterns/step/models/step-internals.js.map +1 -0
  37. package/dist/esm/patterns/step/styles.d.ts +1 -0
  38. package/dist/esm/patterns/step/styles.js +429 -0
  39. package/dist/esm/patterns/step/styles.js.map +1 -0
  40. package/dist/esm/patterns/step/types.d.ts +20 -0
  41. package/dist/esm/patterns/step/types.js +2 -0
  42. package/dist/esm/patterns/step/types.js.map +1 -0
  43. package/dist/esm/step/index.d.ts +44 -2
  44. package/dist/esm/step/index.js +48 -3
  45. package/dist/esm/step/index.js.map +1 -1
  46. package/dist/esm/step/styles.js +10 -2
  47. package/dist/esm/step/styles.js.map +1 -1
  48. package/dist/esm/step/template.d.ts +3 -1
  49. package/dist/esm/step/template.js +75 -3
  50. package/dist/esm/step/template.js.map +1 -1
  51. package/dist/esm/step/types.d.ts +7 -0
  52. package/dist/esm/step/types.js +3 -0
  53. package/dist/esm/step/types.js.map +1 -0
  54. package/dist/esm/stepper/styles.js +6 -1
  55. package/dist/esm/stepper/styles.js.map +1 -1
  56. package/dist/esm/stepper/template.js +3 -1
  57. package/dist/esm/stepper/template.js.map +1 -1
  58. package/dist/esm/stepper/types.d.ts +5 -0
  59. package/dist/esm/stepper/types.js +7 -0
  60. package/dist/esm/stepper/types.js.map +1 -0
  61. package/dist/esm/theme-provider/design-token-comments.js +1 -0
  62. package/dist/esm/theme-provider/design-token-comments.js.map +1 -1
  63. package/dist/esm/theme-provider/design-token-names.js +1 -0
  64. package/dist/esm/theme-provider/design-token-names.js.map +1 -1
  65. package/dist/esm/theme-provider/design-token-values.d.ts +1 -0
  66. package/dist/esm/theme-provider/design-token-values.js +2 -1
  67. package/dist/esm/theme-provider/design-token-values.js.map +1 -1
  68. package/dist/esm/theme-provider/design-tokens.d.ts +1 -0
  69. package/dist/esm/theme-provider/design-tokens.js +1 -0
  70. package/dist/esm/theme-provider/design-tokens.js.map +1 -1
  71. package/dist/esm/utilities/models/device-pixel-ratio.d.ts +10 -0
  72. package/dist/esm/utilities/models/device-pixel-ratio.js +22 -0
  73. package/dist/esm/utilities/models/device-pixel-ratio.js.map +1 -0
  74. package/dist/tokens-internal.scss +6 -0
  75. package/dist/tokens.scss +3 -0
  76. package/package.json +1 -1
@@ -0,0 +1,429 @@
1
+ import { css } from '@ni/fast-element';
2
+ import { Black15, Black91, White } from '@ni/nimble-tokens/dist/styledictionary/js/tokens';
3
+ import { display } from '../../utilities/style/display';
4
+ import { buttonLabelFont, buttonLabelFontColor, smallPadding, bodyFont, errorTextFont, controlSlimHeight, borderRgbPartialColor, borderHoverColor, borderWidth, smallDelay, fillSelectedColor, passColor, failColor, warningColor, buttonLabelDisabledFontColor, iconColor, menuMinWidth, standardPadding, controlHeight, errorTextFontLineHeight } from '../../theme-provider/design-tokens';
5
+ import { styles as severityStyles } from '../severity/styles';
6
+ import { focusVisible } from '../../utilities/style/focus';
7
+ import { userSelectNone } from '../../utilities/style/user-select';
8
+ import { themeBehavior } from '../../utilities/style/theme';
9
+ import { Theme } from '../../theme-provider/types';
10
+ export const styles = css `
11
+ @layer base, hover, focusVisible, active, disabled, top;
12
+
13
+ @layer base {
14
+ ${display('inline-flex')}
15
+ ${severityStyles}
16
+ :host {
17
+ ${'' /* Based on text layout: Top padding + title height + subtitle height + bottom padding */}
18
+ height: calc(${smallPadding} + ${controlSlimHeight} + ${errorTextFontLineHeight} + ${smallPadding});
19
+ width: ${menuMinWidth};
20
+ color: ${buttonLabelFontColor};
21
+ font: ${buttonLabelFont};
22
+ white-space: nowrap;
23
+ outline: none;
24
+ border: none;
25
+ }
26
+
27
+ ${'' /* Container wrapper for severity text to position against */}
28
+ .container {
29
+ display: inline-flex;
30
+ width: 100%;
31
+ height: 100%;
32
+ position: relative;
33
+ }
34
+
35
+ .control {
36
+ display: inline-flex;
37
+ align-items: start;
38
+ justify-content: flex-start;
39
+ height: 100%;
40
+ width: 100%;
41
+ color: inherit;
42
+ background-color: transparent;
43
+ gap: ${smallPadding};
44
+ cursor: pointer;
45
+ outline: none;
46
+ margin: 0;
47
+ padding: 0 ${smallPadding} 0 0;
48
+ --ni-private-step-icon-background-full-size: 100% 100%;
49
+ ${'' /* 6px = (2px icon border + 1px inset) * 2 sides */}
50
+ --ni-private-step-icon-background-inset-size: calc(100% - 6px) calc(100% - 6px);
51
+ --ni-private-step-icon-background-none-size: 0% 0%;
52
+
53
+ --ni-private-step-icon-color: ${buttonLabelFontColor};
54
+ --ni-private-step-icon-border-color: transparent;
55
+ --ni-private-step-icon-background-color: rgba(${borderRgbPartialColor}, 0.1);
56
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-full-size);
57
+ --ni-private-step-icon-outline-inset-color: transparent;
58
+ --ni-private-step-line-color: rgba(${borderRgbPartialColor}, 0.1);
59
+ }
60
+
61
+ :host([severity="error"]) .control {
62
+ --ni-private-step-icon-color: ${failColor};
63
+ --ni-private-step-icon-border-color: ${failColor};
64
+ --ni-private-step-icon-background-color: rgb(from ${failColor} r g b / 30%);
65
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);
66
+ --ni-private-step-line-color: ${failColor};
67
+ }
68
+
69
+ :host([severity="warning"]) .control {
70
+ --ni-private-step-icon-color: ${warningColor};
71
+ --ni-private-step-icon-border-color: ${warningColor};
72
+ --ni-private-step-icon-background-color: rgb(from ${warningColor} r g b / 30%);
73
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);
74
+ --ni-private-step-line-color: ${warningColor};
75
+ }
76
+
77
+ :host([severity="success"]) .control {
78
+ --ni-private-step-icon-color: var(--ni-private-step-icon-inverse-color);
79
+ --ni-private-step-icon-border-color: ${passColor};
80
+ --ni-private-step-icon-background-color: ${passColor};
81
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-full-size);
82
+ --ni-private-step-line-color: rgba(${borderRgbPartialColor}, 0.1);
83
+ }
84
+
85
+ :host([selected]) .control {
86
+ --ni-private-step-icon-color: ${borderHoverColor};
87
+ --ni-private-step-icon-border-color: ${borderHoverColor};
88
+ --ni-private-step-icon-background-color: rgb(from ${borderHoverColor} r g b / 30%);
89
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);
90
+ --ni-private-step-line-color: ${borderHoverColor};
91
+ }
92
+
93
+ .icon {
94
+ display: inline-flex;
95
+ align-items: center;
96
+ justify-content: center;
97
+ flex: none;
98
+ height: ${controlHeight};
99
+ width: ${controlHeight};
100
+ ${userSelectNone};
101
+ font: ${buttonLabelFont};
102
+ color: var(--ni-private-step-icon-color);
103
+ ${iconColor.cssCustomProperty}: var(--ni-private-step-icon-color);
104
+ border-style: solid;
105
+ border-radius: 100%;
106
+ border-color: var(--ni-private-step-icon-border-color);
107
+ border-width: 1px;
108
+ background-image: radial-gradient(
109
+ closest-side,
110
+ ${'' /* Workaround to prevent aliasing on radial-gradient boundaries, see:
111
+ https://frontendmasters.com/blog/obsessing-over-smooth-radial-gradient-disc-edges
112
+ */}
113
+ var(--ni-private-step-icon-background-color) calc(100% - 1px/var(--ni-private-device-resolution)),
114
+ transparent 100%
115
+ );
116
+ background-origin: border-box;
117
+ background-size: var(--ni-private-step-icon-background-size);
118
+ background-repeat: no-repeat;
119
+ background-position: center center;
120
+ position: relative;
121
+ transition:
122
+ border-color ${smallDelay} ease-in-out,
123
+ border-width ${smallDelay} ease-in-out,
124
+ background-size ${smallDelay} ease-out;
125
+ }
126
+
127
+ :host([selected]) .icon {
128
+ border-width: 2px;
129
+ }
130
+
131
+ .icon::before {
132
+ content: '';
133
+ position: absolute;
134
+ width: 100%;
135
+ height: 100%;
136
+ pointer-events: none;
137
+ outline-color: var(--ni-private-step-icon-outline-inset-color);
138
+ outline-style: solid;
139
+ outline-width: 0px;
140
+ outline-offset: 0px;
141
+ border: 1px solid transparent;
142
+ border-radius: 100%;
143
+ color: transparent;
144
+ background-clip: border-box;
145
+ transition:
146
+ outline-color ${smallDelay} ease-in-out,
147
+ outline-width ${smallDelay} ease-in-out,
148
+ outline-offset ${smallDelay} ease-in-out;
149
+ }
150
+
151
+ .icon-slot {
152
+ display: contents;
153
+ }
154
+
155
+ :host([severity="error"]) .icon-slot,
156
+ :host([severity="warning"]) .icon-slot,
157
+ :host([severity="success"]) .icon-slot {
158
+ display: none;
159
+ }
160
+
161
+ :host([selected]) .icon-slot,
162
+ :host([disabled]) .icon-slot {
163
+ display: contents;
164
+ }
165
+
166
+ .icon-severity {
167
+ display: none;
168
+ }
169
+
170
+ :host([severity="error"]) .icon-severity,
171
+ :host([severity="warning"]) .icon-severity,
172
+ :host([severity="success"]) .icon-severity {
173
+ display: contents;
174
+ }
175
+
176
+ :host([selected]) .icon-severity,
177
+ :host([disabled]) .icon-severity {
178
+ display: none;
179
+ }
180
+
181
+ .content {
182
+ display: inline-flex;
183
+ ${'' /* Control width - icon size */}
184
+ width: calc(100% - 32px);
185
+ flex-direction: column;
186
+ padding-top: ${smallPadding};
187
+ padding-bottom: ${smallPadding};
188
+ }
189
+
190
+ .title-wrapper {
191
+ display: inline-flex;
192
+ height: ${controlSlimHeight};
193
+ flex-direction: row;
194
+ align-items: center;
195
+ justify-content: start;
196
+ gap: ${smallPadding};
197
+ font: ${bodyFont};
198
+ }
199
+
200
+ [part='start'] {
201
+ display: none;
202
+ }
203
+
204
+ .title {
205
+ display: inline-block;
206
+ flex: none;
207
+ white-space: nowrap;
208
+ overflow: hidden;
209
+ text-overflow: ellipsis;
210
+ ${'' /* Content width - (gap + line min width) */}
211
+ max-width: calc(100% - (${smallPadding} + ${standardPadding}));
212
+ }
213
+
214
+ [part='end'] {
215
+ display: none;
216
+ }
217
+
218
+ .line {
219
+ display: inline-block;
220
+ flex: 1;
221
+ min-width: ${standardPadding};
222
+ height: 1px;
223
+ background: var(--ni-private-step-line-color);
224
+ transform: scale(1, 1);
225
+ transition:
226
+ background-color ${smallDelay} ease-in-out,
227
+ transform ${smallDelay} ease-in-out;
228
+ }
229
+
230
+ .subtitle {
231
+ font: ${errorTextFont};
232
+ white-space: nowrap;
233
+ overflow: hidden;
234
+ text-overflow: ellipsis;
235
+ ${'' /* Content width */}
236
+ max-width: 100%;
237
+ }
238
+ }
239
+
240
+ @layer hover {
241
+ .control:hover {
242
+ --ni-private-step-icon-border-color: ${borderHoverColor};
243
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-inset-size);
244
+ --ni-private-step-line-color: ${borderHoverColor};
245
+ }
246
+
247
+ :host([severity="error"]) .control:hover {
248
+ --ni-private-step-icon-border-color: ${failColor};
249
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);
250
+ --ni-private-step-line-color: ${failColor};
251
+ }
252
+
253
+ :host([severity="warning"]) .control:hover {
254
+ --ni-private-step-icon-border-color: ${warningColor};
255
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);
256
+ --ni-private-step-line-color: ${warningColor};
257
+ }
258
+
259
+ :host([severity="success"]) .control:hover {
260
+ --ni-private-step-icon-color: var(--ni-private-step-icon-inverse-color);
261
+ --ni-private-step-icon-border-color: ${passColor};
262
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-inset-size);
263
+ --ni-private-step-line-color: ${passColor};
264
+ }
265
+
266
+ :host([selected]) .control:hover {
267
+ --ni-private-step-icon-color: ${buttonLabelFontColor};
268
+ --ni-private-step-icon-border-color: ${borderHoverColor};
269
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-inset-size);
270
+ --ni-private-step-line-color: ${borderHoverColor};
271
+ }
272
+
273
+ .control:hover .icon {
274
+ border-width: 2px;
275
+ }
276
+
277
+ .control:hover .line {
278
+ transform: scale(1, 2);
279
+ }
280
+ }
281
+
282
+ @layer focusVisible {
283
+ .control${focusVisible} {
284
+ --ni-private-step-icon-border-color: ${borderHoverColor};
285
+ --ni-private-step-icon-outline-inset-color: ${borderHoverColor};
286
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-inset-size);
287
+ --ni-private-step-line-color: ${borderHoverColor};
288
+ }
289
+
290
+ :host([severity="error"]) .control${focusVisible} {
291
+ --ni-private-step-icon-border-color: ${failColor};
292
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);
293
+ --ni-private-step-icon-outline-inset-color: ${failColor};
294
+ --ni-private-step-line-color: ${failColor};
295
+ }
296
+
297
+ :host([severity="warning"]) .control${focusVisible} {
298
+ --ni-private-step-icon-border-color: ${warningColor};
299
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);
300
+ --ni-private-step-icon-outline-inset-color: ${warningColor};
301
+ --ni-private-step-line-color: ${warningColor};
302
+ }
303
+
304
+ :host([severity="success"]) .control${focusVisible} {
305
+ --ni-private-step-icon-color: var(--ni-private-step-icon-inverse-color);
306
+ --ni-private-step-icon-border-color: ${passColor};
307
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-inset-size);
308
+ --ni-private-step-icon-outline-inset-color: transparent;
309
+ --ni-private-step-line-color: ${passColor};
310
+ }
311
+
312
+ :host([selected]) .control${focusVisible} {
313
+ --ni-private-step-icon-color: ${borderHoverColor};
314
+ --ni-private-step-icon-border-color: ${borderHoverColor};
315
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);
316
+ --ni-private-step-icon-outline-inset-color: ${borderHoverColor};
317
+ --ni-private-step-line-color: ${borderHoverColor};
318
+ }
319
+
320
+ .control${focusVisible} .icon {
321
+ border-width: 2px;
322
+ }
323
+
324
+ .control${focusVisible} .icon::before {
325
+ outline-width: ${borderWidth};
326
+ outline-offset: -2px;
327
+ }
328
+
329
+ .control${focusVisible} .line {
330
+ transform: scale(1, 2);
331
+ }
332
+ }
333
+
334
+ @layer active {
335
+ .control:active {
336
+ --ni-private-step-icon-border-color: ${borderHoverColor};
337
+ --ni-private-step-icon-background-color: ${fillSelectedColor};
338
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-full-size);
339
+ --ni-private-step-line-color: ${borderHoverColor};
340
+ }
341
+
342
+ :host([severity="error"]) .control:active {
343
+ --ni-private-step-icon-border-color: ${failColor};
344
+ --ni-private-step-icon-background-color: rgb(from ${failColor} r g b / 30%);
345
+ --ni-private-step-line-color: ${failColor};
346
+ }
347
+
348
+ :host([severity="warning"]) .control:active {
349
+ --ni-private-step-icon-border-color: ${warningColor};
350
+ --ni-private-step-icon-background-color: rgb(from ${warningColor} r g b / 30%);
351
+ --ni-private-step-line-color: ${warningColor};
352
+ }
353
+
354
+ :host([severity="success"]) .control:active {
355
+ --ni-private-step-icon-color: ${buttonLabelFontColor};
356
+ --ni-private-step-icon-border-color: ${passColor};
357
+ --ni-private-step-icon-background-color: rgb(from ${passColor} r g b / 30%);
358
+ --ni-private-step-line-color: ${passColor};
359
+ }
360
+
361
+ :host([selected]) .control:active {
362
+ --ni-private-step-icon-color: ${buttonLabelFontColor};
363
+ --ni-private-step-icon-border-color: ${borderHoverColor};
364
+ --ni-private-step-icon-background-color: rgb(from ${borderHoverColor} r g b / 30%);
365
+ --ni-private-step-line-color: ${borderHoverColor};
366
+ }
367
+
368
+ .control:active .icon {
369
+ border-width: 2px;
370
+ }
371
+
372
+ .control:active .icon::before {
373
+ outline-width: 0px;
374
+ outline-offset: 0px;
375
+ }
376
+
377
+ .control:active .line {
378
+ transform: scale(1, 1);
379
+ }
380
+ }
381
+
382
+ @layer disabled {
383
+ :host([disabled]) .control {
384
+ cursor: default;
385
+ color: ${buttonLabelDisabledFontColor};
386
+ --ni-private-step-icon-color: rgb(from ${buttonLabelFontColor} r g b / 30%);
387
+ --ni-private-step-icon-border-color: transparent;
388
+ --ni-private-step-icon-background-color: rgba(${borderRgbPartialColor}, 0.1);
389
+ --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-full-size);
390
+ --ni-private-step-icon-outline-inset-color: transparent;
391
+ --ni-private-step-line-color: rgba(${borderRgbPartialColor}, 0.1);
392
+ }
393
+
394
+ :host([disabled]) .line {
395
+ transform: scale(1, 1);
396
+ }
397
+ }
398
+
399
+ @layer top {
400
+ @media (prefers-reduced-motion) {
401
+ .control {
402
+ transition-duration: 0s;
403
+ }
404
+ }
405
+ }
406
+ `.withBehaviors(themeBehavior(Theme.light, css `
407
+ @layer base {
408
+ .control {
409
+ --ni-private-step-icon-inverse-color: ${White};
410
+ }
411
+ }
412
+ `), themeBehavior(Theme.dark, css `
413
+ @layer base {
414
+ .control {
415
+ --ni-private-step-icon-inverse-color: ${Black91};
416
+ }
417
+ }
418
+ `), themeBehavior(Theme.color, css `
419
+ @layer base {
420
+ .control {
421
+ --ni-private-step-icon-inverse-color: ${Black15};
422
+ }
423
+
424
+ :host([severity="success"]) .control {
425
+ --ni-private-step-icon-background-color: rgb(from ${passColor} r g b / 30%);
426
+ }
427
+ }
428
+ `));
429
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../src/patterns/step/styles.ts"],"names":[],"mappings":"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","sourcesContent":["import { css } from '@ni/fast-element';\nimport { Black15, Black91, White } from '@ni/nimble-tokens/dist/styledictionary/js/tokens';\nimport { display } from '../../utilities/style/display';\nimport {\n buttonLabelFont,\n buttonLabelFontColor,\n smallPadding,\n bodyFont,\n errorTextFont,\n controlSlimHeight,\n borderRgbPartialColor,\n borderHoverColor,\n borderWidth,\n smallDelay,\n fillSelectedColor,\n passColor,\n failColor,\n warningColor,\n buttonLabelDisabledFontColor,\n iconColor,\n menuMinWidth,\n standardPadding,\n controlHeight,\n errorTextFontLineHeight\n} from '../../theme-provider/design-tokens';\nimport { styles as severityStyles } from '../severity/styles';\nimport { focusVisible } from '../../utilities/style/focus';\nimport { userSelectNone } from '../../utilities/style/user-select';\nimport { themeBehavior } from '../../utilities/style/theme';\nimport { Theme } from '../../theme-provider/types';\n\nexport const styles = css`\n @layer base, hover, focusVisible, active, disabled, top;\n\n @layer base {\n ${display('inline-flex')}\n ${severityStyles}\n :host {\n ${'' /* Based on text layout: Top padding + title height + subtitle height + bottom padding */}\n height: calc(${smallPadding} + ${controlSlimHeight} + ${errorTextFontLineHeight} + ${smallPadding});\n width: ${menuMinWidth};\n color: ${buttonLabelFontColor};\n font: ${buttonLabelFont};\n white-space: nowrap;\n outline: none;\n border: none;\n }\n\n ${'' /* Container wrapper for severity text to position against */}\n .container {\n display: inline-flex;\n width: 100%;\n height: 100%;\n position: relative;\n }\n\n .control { \n display: inline-flex;\n align-items: start;\n justify-content: flex-start;\n height: 100%;\n width: 100%;\n color: inherit;\n background-color: transparent;\n gap: ${smallPadding};\n cursor: pointer;\n outline: none;\n margin: 0; \n padding: 0 ${smallPadding} 0 0;\n --ni-private-step-icon-background-full-size: 100% 100%;\n ${'' /* 6px = (2px icon border + 1px inset) * 2 sides */}\n --ni-private-step-icon-background-inset-size: calc(100% - 6px) calc(100% - 6px);\n --ni-private-step-icon-background-none-size: 0% 0%;\n\n --ni-private-step-icon-color: ${buttonLabelFontColor};\n --ni-private-step-icon-border-color: transparent;\n --ni-private-step-icon-background-color: rgba(${borderRgbPartialColor}, 0.1);\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-full-size);\n --ni-private-step-icon-outline-inset-color: transparent;\n --ni-private-step-line-color: rgba(${borderRgbPartialColor}, 0.1);\n }\n\n :host([severity=\"error\"]) .control {\n --ni-private-step-icon-color: ${failColor};\n --ni-private-step-icon-border-color: ${failColor};\n --ni-private-step-icon-background-color: rgb(from ${failColor} r g b / 30%);\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);\n --ni-private-step-line-color: ${failColor};\n }\n\n :host([severity=\"warning\"]) .control {\n --ni-private-step-icon-color: ${warningColor};\n --ni-private-step-icon-border-color: ${warningColor};\n --ni-private-step-icon-background-color: rgb(from ${warningColor} r g b / 30%);\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);\n --ni-private-step-line-color: ${warningColor};\n }\n\n :host([severity=\"success\"]) .control {\n --ni-private-step-icon-color: var(--ni-private-step-icon-inverse-color);\n --ni-private-step-icon-border-color: ${passColor};\n --ni-private-step-icon-background-color: ${passColor};\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-full-size);\n --ni-private-step-line-color: rgba(${borderRgbPartialColor}, 0.1);\n }\n\n :host([selected]) .control {\n --ni-private-step-icon-color: ${borderHoverColor};\n --ni-private-step-icon-border-color: ${borderHoverColor};\n --ni-private-step-icon-background-color: rgb(from ${borderHoverColor} r g b / 30%);\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);\n --ni-private-step-line-color: ${borderHoverColor};\n }\n\n .icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: none;\n height: ${controlHeight};\n width: ${controlHeight};\n ${userSelectNone};\n font: ${buttonLabelFont};\n color: var(--ni-private-step-icon-color);\n ${iconColor.cssCustomProperty}: var(--ni-private-step-icon-color);\n border-style: solid;\n border-radius: 100%;\n border-color: var(--ni-private-step-icon-border-color);\n border-width: 1px;\n background-image: radial-gradient(\n closest-side,\n ${'' /* Workaround to prevent aliasing on radial-gradient boundaries, see:\n https://frontendmasters.com/blog/obsessing-over-smooth-radial-gradient-disc-edges\n */}\n var(--ni-private-step-icon-background-color) calc(100% - 1px/var(--ni-private-device-resolution)),\n transparent 100%\n );\n background-origin: border-box;\n background-size: var(--ni-private-step-icon-background-size);\n background-repeat: no-repeat;\n background-position: center center;\n position: relative;\n transition:\n border-color ${smallDelay} ease-in-out,\n border-width ${smallDelay} ease-in-out,\n background-size ${smallDelay} ease-out;\n }\n\n :host([selected]) .icon {\n border-width: 2px;\n }\n\n .icon::before {\n content: '';\n position: absolute;\n width: 100%;\n height: 100%;\n pointer-events: none;\n outline-color: var(--ni-private-step-icon-outline-inset-color);\n outline-style: solid;\n outline-width: 0px;\n outline-offset: 0px;\n border: 1px solid transparent;\n border-radius: 100%;\n color: transparent;\n background-clip: border-box;\n transition:\n outline-color ${smallDelay} ease-in-out,\n outline-width ${smallDelay} ease-in-out,\n outline-offset ${smallDelay} ease-in-out;\n }\n\n .icon-slot {\n display: contents;\n }\n\n :host([severity=\"error\"]) .icon-slot,\n :host([severity=\"warning\"]) .icon-slot,\n :host([severity=\"success\"]) .icon-slot {\n display: none;\n }\n\n :host([selected]) .icon-slot,\n :host([disabled]) .icon-slot {\n display: contents;\n }\n\n .icon-severity {\n display: none;\n }\n\n :host([severity=\"error\"]) .icon-severity,\n :host([severity=\"warning\"]) .icon-severity,\n :host([severity=\"success\"]) .icon-severity {\n display: contents;\n }\n\n :host([selected]) .icon-severity,\n :host([disabled]) .icon-severity {\n display: none;\n }\n\n .content {\n display: inline-flex;\n ${'' /* Control width - icon size */}\n width: calc(100% - 32px);\n flex-direction: column;\n padding-top: ${smallPadding};\n padding-bottom: ${smallPadding};\n }\n\n .title-wrapper {\n display: inline-flex;\n height: ${controlSlimHeight};\n flex-direction: row;\n align-items: center;\n justify-content: start;\n gap: ${smallPadding};\n font: ${bodyFont};\n }\n\n [part='start'] {\n display: none;\n }\n\n .title {\n display: inline-block;\n flex: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n ${'' /* Content width - (gap + line min width) */}\n max-width: calc(100% - (${smallPadding} + ${standardPadding}));\n }\n\n [part='end'] {\n display: none;\n }\n \n .line {\n display: inline-block;\n flex: 1;\n min-width: ${standardPadding};\n height: 1px;\n background: var(--ni-private-step-line-color);\n transform: scale(1, 1);\n transition:\n background-color ${smallDelay} ease-in-out,\n transform ${smallDelay} ease-in-out;\n }\n\n .subtitle {\n font: ${errorTextFont};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n ${'' /* Content width */}\n max-width: 100%;\n }\n }\n\n @layer hover {\n .control:hover {\n --ni-private-step-icon-border-color: ${borderHoverColor};\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-inset-size);\n --ni-private-step-line-color: ${borderHoverColor};\n }\n\n :host([severity=\"error\"]) .control:hover {\n --ni-private-step-icon-border-color: ${failColor};\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);\n --ni-private-step-line-color: ${failColor};\n }\n\n :host([severity=\"warning\"]) .control:hover {\n --ni-private-step-icon-border-color: ${warningColor};\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);\n --ni-private-step-line-color: ${warningColor};\n }\n\n :host([severity=\"success\"]) .control:hover {\n --ni-private-step-icon-color: var(--ni-private-step-icon-inverse-color);\n --ni-private-step-icon-border-color: ${passColor};\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-inset-size);\n --ni-private-step-line-color: ${passColor};\n }\n\n :host([selected]) .control:hover {\n --ni-private-step-icon-color: ${buttonLabelFontColor};\n --ni-private-step-icon-border-color: ${borderHoverColor};\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-inset-size);\n --ni-private-step-line-color: ${borderHoverColor};\n }\n\n .control:hover .icon {\n border-width: 2px;\n }\n\n .control:hover .line {\n transform: scale(1, 2);\n }\n }\n\n @layer focusVisible {\n .control${focusVisible} {\n --ni-private-step-icon-border-color: ${borderHoverColor};\n --ni-private-step-icon-outline-inset-color: ${borderHoverColor};\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-inset-size);\n --ni-private-step-line-color: ${borderHoverColor};\n }\n\n :host([severity=\"error\"]) .control${focusVisible} {\n --ni-private-step-icon-border-color: ${failColor};\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);\n --ni-private-step-icon-outline-inset-color: ${failColor};\n --ni-private-step-line-color: ${failColor};\n }\n\n :host([severity=\"warning\"]) .control${focusVisible} {\n --ni-private-step-icon-border-color: ${warningColor};\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);\n --ni-private-step-icon-outline-inset-color: ${warningColor};\n --ni-private-step-line-color: ${warningColor};\n }\n\n :host([severity=\"success\"]) .control${focusVisible} {\n --ni-private-step-icon-color: var(--ni-private-step-icon-inverse-color);\n --ni-private-step-icon-border-color: ${passColor};\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-inset-size);\n --ni-private-step-icon-outline-inset-color: transparent;\n --ni-private-step-line-color: ${passColor};\n }\n\n :host([selected]) .control${focusVisible} {\n --ni-private-step-icon-color: ${borderHoverColor};\n --ni-private-step-icon-border-color: ${borderHoverColor};\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);\n --ni-private-step-icon-outline-inset-color: ${borderHoverColor};\n --ni-private-step-line-color: ${borderHoverColor};\n }\n \n .control${focusVisible} .icon {\n border-width: 2px;\n }\n\n .control${focusVisible} .icon::before {\n outline-width: ${borderWidth};\n outline-offset: -2px;\n }\n\n .control${focusVisible} .line {\n transform: scale(1, 2);\n }\n }\n\n @layer active {\n .control:active {\n --ni-private-step-icon-border-color: ${borderHoverColor};\n --ni-private-step-icon-background-color: ${fillSelectedColor};\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-full-size);\n --ni-private-step-line-color: ${borderHoverColor};\n }\n\n :host([severity=\"error\"]) .control:active {\n --ni-private-step-icon-border-color: ${failColor};\n --ni-private-step-icon-background-color: rgb(from ${failColor} r g b / 30%);\n --ni-private-step-line-color: ${failColor};\n }\n\n :host([severity=\"warning\"]) .control:active {\n --ni-private-step-icon-border-color: ${warningColor};\n --ni-private-step-icon-background-color: rgb(from ${warningColor} r g b / 30%);\n --ni-private-step-line-color: ${warningColor};\n }\n\n :host([severity=\"success\"]) .control:active {\n --ni-private-step-icon-color: ${buttonLabelFontColor};\n --ni-private-step-icon-border-color: ${passColor};\n --ni-private-step-icon-background-color: rgb(from ${passColor} r g b / 30%);\n --ni-private-step-line-color: ${passColor};\n }\n\n :host([selected]) .control:active {\n --ni-private-step-icon-color: ${buttonLabelFontColor};\n --ni-private-step-icon-border-color: ${borderHoverColor};\n --ni-private-step-icon-background-color: rgb(from ${borderHoverColor} r g b / 30%);\n --ni-private-step-line-color: ${borderHoverColor};\n }\n\n .control:active .icon {\n border-width: 2px;\n }\n\n .control:active .icon::before {\n outline-width: 0px;\n outline-offset: 0px;\n }\n\n .control:active .line {\n transform: scale(1, 1);\n }\n }\n\n @layer disabled {\n :host([disabled]) .control {\n cursor: default;\n color: ${buttonLabelDisabledFontColor};\n --ni-private-step-icon-color: rgb(from ${buttonLabelFontColor} r g b / 30%);\n --ni-private-step-icon-border-color: transparent;\n --ni-private-step-icon-background-color: rgba(${borderRgbPartialColor}, 0.1);\n --ni-private-step-icon-background-size: var(--ni-private-step-icon-background-full-size);\n --ni-private-step-icon-outline-inset-color: transparent;\n --ni-private-step-line-color: rgba(${borderRgbPartialColor}, 0.1);\n }\n\n :host([disabled]) .line {\n transform: scale(1, 1);\n }\n }\n\n @layer top {\n @media (prefers-reduced-motion) {\n .control {\n transition-duration: 0s;\n }\n }\n }\n`.withBehaviors(\n themeBehavior(\n Theme.light,\n css`\n @layer base {\n .control {\n --ni-private-step-icon-inverse-color: ${White};\n }\n }\n `\n ),\n themeBehavior(\n Theme.dark,\n css`\n @layer base {\n .control {\n --ni-private-step-icon-inverse-color: ${Black91};\n }\n }\n `\n ),\n themeBehavior(\n Theme.color,\n css`\n @layer base {\n .control {\n --ni-private-step-icon-inverse-color: ${Black15};\n }\n\n :host([severity=\"success\"]) .control {\n --ni-private-step-icon-background-color: rgb(from ${passColor} r g b / 30%);\n }\n }\n `\n )\n);\n"]}
@@ -0,0 +1,20 @@
1
+ import type { SeverityPattern } from '../severity/types';
2
+ import type { StepInternals } from './models/step-internals';
3
+ export interface StepPattern extends SeverityPattern {
4
+ /**
5
+ * Whether or not the step is disabled.
6
+ */
7
+ disabled: boolean;
8
+ /**
9
+ * Whether or not the step is readOnly.
10
+ */
11
+ readOnly: boolean;
12
+ /**
13
+ * Whether or not the step is selected.
14
+ */
15
+ selected: boolean;
16
+ /**
17
+ * @internal Internal step state set by the stepper
18
+ */
19
+ stepInternals: StepInternals;
20
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/patterns/step/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { SeverityPattern } from '../severity/types';\nimport type { StepInternals } from './models/step-internals';\n\nexport interface StepPattern extends SeverityPattern {\n /**\n * Whether or not the step is disabled.\n */\n disabled: boolean;\n\n /**\n * Whether or not the step is readOnly.\n */\n readOnly: boolean;\n\n /**\n * Whether or not the step is selected.\n */\n selected: boolean;\n\n /**\n * @internal Internal step state set by the stepper\n */\n stepInternals: StepInternals;\n}\n"]}
@@ -1,12 +1,54 @@
1
- import { FoundationElement } from '@ni/fast-foundation';
1
+ import { Button as FoundationButton } from '@ni/fast-foundation';
2
+ import type { StepPattern } from '../patterns/step/types';
3
+ import { StepInternals } from '../patterns/step/models/step-internals';
4
+ import { StepSeverity } from './types';
2
5
  declare global {
3
6
  interface HTMLElementTagNameMap {
4
7
  'nimble-step': Step;
5
8
  }
6
9
  }
10
+ declare const Step_base: (abstract new (...args: any[]) => {
11
+ severity: import("../patterns/severity/types").Severity;
12
+ severityText?: string;
13
+ severityHasOverflow: boolean;
14
+ readonly $fastController: import("@ni/fast-element").Controller;
15
+ $emit(type: string, detail?: any, options?: Omit<CustomEventInit, "detail">): boolean | void;
16
+ connectedCallback(): void;
17
+ disconnectedCallback(): void;
18
+ attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
19
+ }) & typeof FoundationButton;
7
20
  /**
8
21
  * A nimble-styled step for a stepper
9
22
  */
10
- export declare class Step extends FoundationElement {
23
+ export declare class Step extends Step_base implements StepPattern {
24
+ /**
25
+ * @public
26
+ * @remarks
27
+ * HTML Attribute: disabled
28
+ */
29
+ severity: StepSeverity;
30
+ /**
31
+ * @public
32
+ * @remarks
33
+ * HTML Attribute: readonly
34
+ */
35
+ readOnly: boolean;
36
+ /**
37
+ * @public
38
+ * @remarks
39
+ * HTML Attribute: selected
40
+ */
41
+ selected: boolean;
42
+ /**
43
+ * @public
44
+ * @remarks
45
+ * HTML Attribute: tabindex
46
+ */
47
+ tabIndex: number;
48
+ /**
49
+ * @internal
50
+ */
51
+ readonly stepInternals: StepInternals;
11
52
  }
12
53
  export declare const stepTag = "nimble-step";
54
+ export {};
@@ -1,15 +1,60 @@
1
- import { DesignSystem, FoundationElement } from '@ni/fast-foundation';
1
+ import { __decorate } from "tslib";
2
+ import { Button as FoundationButton, DesignSystem } from '@ni/fast-foundation';
3
+ import { attr, nullableNumberConverter } from '@ni/fast-element';
2
4
  import { styles } from './styles';
3
5
  import { template } from './template';
6
+ import { mixinSeverityPattern } from '../patterns/severity/types';
7
+ import { StepInternals } from '../patterns/step/models/step-internals';
8
+ import { StepSeverity } from './types';
4
9
  /**
5
10
  * A nimble-styled step for a stepper
6
11
  */
7
- export class Step extends FoundationElement {
12
+ export class Step extends mixinSeverityPattern(FoundationButton) {
13
+ constructor() {
14
+ super(...arguments);
15
+ /**
16
+ * @public
17
+ * @remarks
18
+ * HTML Attribute: disabled
19
+ */
20
+ this.severity = StepSeverity.default;
21
+ /**
22
+ * @public
23
+ * @remarks
24
+ * HTML Attribute: readonly
25
+ */
26
+ this.readOnly = false;
27
+ /**
28
+ * @public
29
+ * @remarks
30
+ * HTML Attribute: selected
31
+ */
32
+ this.selected = false;
33
+ /**
34
+ * @internal
35
+ */
36
+ this.stepInternals = new StepInternals();
37
+ }
8
38
  }
39
+ __decorate([
40
+ attr()
41
+ ], Step.prototype, "severity", void 0);
42
+ __decorate([
43
+ attr({ attribute: 'readonly', mode: 'boolean' })
44
+ ], Step.prototype, "readOnly", void 0);
45
+ __decorate([
46
+ attr({ mode: 'boolean' })
47
+ ], Step.prototype, "selected", void 0);
48
+ __decorate([
49
+ attr({ attribute: 'tabindex', converter: nullableNumberConverter })
50
+ ], Step.prototype, "tabIndex", void 0);
9
51
  const nimbleStep = Step.compose({
10
52
  baseName: 'step',
11
53
  template,
12
- styles
54
+ styles,
55
+ shadowOptions: {
56
+ delegatesFocus: true
57
+ }
13
58
  });
14
59
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleStep());
15
60
  export const stepTag = 'nimble-step';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/step/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC;;GAEG;AACH,MAAM,OAAO,IAAK,SAAQ,iBAAiB;CAAG;AAE9C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;IAC5B,QAAQ,EAAE,MAAM;IAChB,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC","sourcesContent":["import { DesignSystem, FoundationElement } from '@ni/fast-foundation';\nimport { styles } from './styles';\nimport { template } from './template';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nimble-step': Step;\n }\n}\n\n/**\n * A nimble-styled step for a stepper\n */\nexport class Step extends FoundationElement {}\n\nconst nimbleStep = Step.compose({\n baseName: 'step',\n template,\n styles\n});\n\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleStep());\nexport const stepTag = 'nimble-step';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/step/index.ts"],"names":[],"mappings":";AAAA,OAAO,EACH,MAAM,IAAI,gBAAgB,EAE1B,YAAY,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAQvC;;GAEG;AACH,MAAM,OAAO,IAAK,SAAQ,oBAAoB,CAAC,gBAAgB,CAAC;IAAhE;;QACI;;;;WAIG;QAEI,aAAQ,GAAiB,YAAY,CAAC,OAAO,CAAC;QAErD;;;;WAIG;QAEI,aAAQ,GAAG,KAAK,CAAC;QAExB;;;;WAIG;QAEI,aAAQ,GAAG,KAAK,CAAC;QAUxB;;WAEG;QACa,kBAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IACxD,CAAC;CAAA;AA9BU;IADN,IAAI,EAAE;sCAC8C;AAQ9C;IADN,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;sCACzB;AAQjB;IADN,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;sCACF;AAQR;IADf,IAAI,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC;sCAClC;AAQtC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAgB;IAC3C,QAAQ,EAAE,MAAM;IAChB,QAAQ;IACR,MAAM;IACN,aAAa,EAAE;QACX,cAAc,EAAE,IAAI;KACvB;CACJ,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC","sourcesContent":["import {\n Button as FoundationButton,\n type ButtonOptions,\n DesignSystem\n} from '@ni/fast-foundation';\nimport { attr, nullableNumberConverter } from '@ni/fast-element';\nimport { styles } from './styles';\nimport { template } from './template';\nimport type { StepPattern } from '../patterns/step/types';\nimport { mixinSeverityPattern } from '../patterns/severity/types';\nimport { StepInternals } from '../patterns/step/models/step-internals';\nimport { StepSeverity } from './types';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nimble-step': Step;\n }\n}\n\n/**\n * A nimble-styled step for a stepper\n */\nexport class Step extends mixinSeverityPattern(FoundationButton) implements StepPattern {\n /**\n * @public\n * @remarks\n * HTML Attribute: disabled\n */\n @attr()\n public severity: StepSeverity = StepSeverity.default;\n\n /**\n * @public\n * @remarks\n * HTML Attribute: readonly\n */\n @attr({ attribute: 'readonly', mode: 'boolean' })\n public readOnly = false;\n\n /**\n * @public\n * @remarks\n * HTML Attribute: selected\n */\n @attr({ mode: 'boolean' })\n public selected = false;\n\n /**\n * @public\n * @remarks\n * HTML Attribute: tabindex\n */\n @attr({ attribute: 'tabindex', converter: nullableNumberConverter })\n public override tabIndex!: number;\n\n /**\n * @internal\n */\n public readonly stepInternals = new StepInternals();\n}\n\nconst nimbleStep = Step.compose<ButtonOptions>({\n baseName: 'step',\n template,\n styles,\n shadowOptions: {\n delegatesFocus: true\n }\n});\n\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleStep());\nexport const stepTag = 'nimble-step';\n"]}
@@ -1,6 +1,14 @@
1
1
  import { css } from '@ni/fast-element';
2
- import { display } from '../utilities/style/display';
2
+ import { styles as stepStyles } from '../patterns/step/styles';
3
3
  export const styles = css `
4
- ${display('flex')}
4
+ ${stepStyles}
5
+ ${'' /* Button specific styles */}
6
+ @layer base {
7
+ .control {
8
+ font: inherit;
9
+ border: none;
10
+ text-align: start;
11
+ }
12
+ }
5
13
  `;
6
14
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/step/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,OAAO,CAAC,MAAM,CAAC;CACpB,CAAC","sourcesContent":["import { css } from '@ni/fast-element';\nimport { display } from '../utilities/style/display';\n\nexport const styles = css`\n ${display('flex')}\n`;\n"]}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/step/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;MACnB,UAAU;MACV,EAAE,CAAC,4BAA4B;;;;;;;;CAQpC,CAAC","sourcesContent":["import { css } from '@ni/fast-element';\nimport { styles as stepStyles } from '../patterns/step/styles';\n\nexport const styles = css`\n ${stepStyles}\n ${'' /* Button specific styles */}\n @layer base {\n .control {\n font: inherit;\n border: none;\n text-align: start;\n }\n }\n`;\n"]}
@@ -1,2 +1,4 @@
1
+ import { ViewTemplate } from '@ni/fast-element';
2
+ import { type ButtonOptions, type FoundationElementTemplate } from '@ni/fast-foundation';
1
3
  import type { Step } from '.';
2
- export declare const template: import("@ni/fast-element").ViewTemplate<Step, any>;
4
+ export declare const template: FoundationElementTemplate<ViewTemplate<Step>, ButtonOptions>;