@atlaskit/date-label 0.1.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.
Files changed (95) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE.md +11 -0
  3. package/README.md +128 -0
  4. package/constellation/date-label-dropdown-trigger/code.mdx +13 -0
  5. package/constellation/date-label-dropdown-trigger/examples.mdx +48 -0
  6. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-anatomy-dark.png +0 -0
  7. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-anatomy-light.png +0 -0
  8. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-do-1-dark.png +0 -0
  9. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-do-1-light.png +0 -0
  10. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-do-2-dark.png +0 -0
  11. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-do-2-light.png +0 -0
  12. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-do-3-dark.png +0 -0
  13. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-do-3-light.png +0 -0
  14. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-do-4-dark.png +0 -0
  15. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-do-4-light.png +0 -0
  16. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-dont-1-dark.png +0 -0
  17. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-dont-1-light.png +0 -0
  18. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-dont-2-dark.png +0 -0
  19. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-dont-2-light.png +0 -0
  20. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-dont-3-dark.png +0 -0
  21. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-dont-3-light.png +0 -0
  22. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-dont-4-dark.png +0 -0
  23. package/constellation/date-label-dropdown-trigger/images/datelabel-dropdown-dont-4-light.png +0 -0
  24. package/constellation/date-label-dropdown-trigger/usage.mdx +176 -0
  25. package/constellation/index/examples.mdx +66 -0
  26. package/constellation/index/images/date-label-anatomy-dark.png +0 -0
  27. package/constellation/index/images/date-label-anatomy-light.png +0 -0
  28. package/constellation/index/images/date-label-do-1-dark.png +0 -0
  29. package/constellation/index/images/date-label-do-1-light.png +0 -0
  30. package/constellation/index/images/date-label-do-2-dark.png +0 -0
  31. package/constellation/index/images/date-label-do-2-light.png +0 -0
  32. package/constellation/index/images/date-label-do-3-dark.png +0 -0
  33. package/constellation/index/images/date-label-do-3-light.png +0 -0
  34. package/constellation/index/images/date-label-do-4-dark.png +0 -0
  35. package/constellation/index/images/date-label-do-4-light.png +0 -0
  36. package/constellation/index/images/date-label-dont-1-dark.png +0 -0
  37. package/constellation/index/images/date-label-dont-1-light.png +0 -0
  38. package/constellation/index/images/date-label-dont-2-dark.png +0 -0
  39. package/constellation/index/images/date-label-dont-2-light.png +0 -0
  40. package/constellation/index/images/date-label-dont-3-dark.png +0 -0
  41. package/constellation/index/images/date-label-dont-3-light.png +0 -0
  42. package/constellation/index/images/date-label-dont-4-dark.png +0 -0
  43. package/constellation/index/images/date-label-dont-4-light.png +0 -0
  44. package/constellation/index/props.mdx +14 -0
  45. package/constellation/index/usage.mdx +176 -0
  46. package/date-label/package.json +17 -0
  47. package/date-label-dropdown-trigger/package.json +17 -0
  48. package/dist/cjs/entry-points/date-label-dropdown-trigger.js +13 -0
  49. package/dist/cjs/entry-points/date-label.js +20 -0
  50. package/dist/cjs/entry-points/types.js +1 -0
  51. package/dist/cjs/ui/date-label/constants.js +7 -0
  52. package/dist/cjs/ui/date-label/index.compiled.css +30 -0
  53. package/dist/cjs/ui/date-label/index.js +90 -0
  54. package/dist/cjs/ui/date-label/types.js +1 -0
  55. package/dist/cjs/ui/date-label-dropdown-trigger/index.compiled.css +62 -0
  56. package/dist/cjs/ui/date-label-dropdown-trigger/index.js +140 -0
  57. package/dist/cjs/ui/date-label-dropdown-trigger/types.js +1 -0
  58. package/dist/es2019/entry-points/date-label-dropdown-trigger.js +1 -0
  59. package/dist/es2019/entry-points/date-label.js +2 -0
  60. package/dist/es2019/entry-points/types.js +0 -0
  61. package/dist/es2019/ui/date-label/constants.js +1 -0
  62. package/dist/es2019/ui/date-label/index.compiled.css +30 -0
  63. package/dist/es2019/ui/date-label/index.js +78 -0
  64. package/dist/es2019/ui/date-label/types.js +0 -0
  65. package/dist/es2019/ui/date-label-dropdown-trigger/index.compiled.css +62 -0
  66. package/dist/es2019/ui/date-label-dropdown-trigger/index.js +126 -0
  67. package/dist/es2019/ui/date-label-dropdown-trigger/types.js +0 -0
  68. package/dist/esm/entry-points/date-label-dropdown-trigger.js +1 -0
  69. package/dist/esm/entry-points/date-label.js +2 -0
  70. package/dist/esm/entry-points/types.js +0 -0
  71. package/dist/esm/ui/date-label/constants.js +1 -0
  72. package/dist/esm/ui/date-label/index.compiled.css +30 -0
  73. package/dist/esm/ui/date-label/index.js +81 -0
  74. package/dist/esm/ui/date-label/types.js +0 -0
  75. package/dist/esm/ui/date-label-dropdown-trigger/index.compiled.css +62 -0
  76. package/dist/esm/ui/date-label-dropdown-trigger/index.js +131 -0
  77. package/dist/esm/ui/date-label-dropdown-trigger/types.js +0 -0
  78. package/dist/types/entry-points/date-label-dropdown-trigger.d.ts +2 -0
  79. package/dist/types/entry-points/date-label.d.ts +4 -0
  80. package/dist/types/entry-points/types.d.ts +2 -0
  81. package/dist/types/ui/date-label/constants.d.ts +1 -0
  82. package/dist/types/ui/date-label/index.d.ts +16 -0
  83. package/dist/types/ui/date-label/types.d.ts +60 -0
  84. package/dist/types/ui/date-label-dropdown-trigger/index.d.ts +20 -0
  85. package/dist/types/ui/date-label-dropdown-trigger/types.d.ts +95 -0
  86. package/dist/types-ts4.5/entry-points/date-label-dropdown-trigger.d.ts +2 -0
  87. package/dist/types-ts4.5/entry-points/date-label.d.ts +4 -0
  88. package/dist/types-ts4.5/entry-points/types.d.ts +2 -0
  89. package/dist/types-ts4.5/ui/date-label/constants.d.ts +1 -0
  90. package/dist/types-ts4.5/ui/date-label/index.d.ts +16 -0
  91. package/dist/types-ts4.5/ui/date-label/types.d.ts +60 -0
  92. package/dist/types-ts4.5/ui/date-label-dropdown-trigger/index.d.ts +20 -0
  93. package/dist/types-ts4.5/ui/date-label-dropdown-trigger/types.d.ts +95 -0
  94. package/package.json +103 -0
  95. package/types/package.json +17 -0
@@ -0,0 +1,78 @@
1
+ /* index.tsx generated by @compiled/babel-plugin v0.39.1 */
2
+ import "./index.compiled.css";
3
+ import * as React from 'react';
4
+ import { ax, ix } from "@compiled/react/runtime";
5
+ import WarningOutlineIcon from '@atlaskit/icon-lab/core/warning-outline';
6
+ import CalendarIcon from '@atlaskit/icon/core/calendar';
7
+ import ClockIcon from '@atlaskit/icon/core/clock';
8
+ const containerStyles = {
9
+ base: "_zulp1b66 _2rko12b0 _1rjcv77o _18zr1b66 _1dqonqa1 _189ee4h9 _vchhusvi _1e0c116y _2lx2vrvc _4cvr1h6o",
10
+ spacious: "_2rko1qi0 _zulp12x7 _1rjc1b66 _18zrutpp _1tkeviql",
11
+ neutral: "_1h6dmsup",
12
+ warning: "_1h6d1wfx",
13
+ danger: "_1h6d1mzp"
14
+ };
15
+ const textStyles = {
16
+ base: "_11c8wadc _1reo15vq _18m915vq _1bto1l2s _o5721q9c _1ul9idpf",
17
+ spacious: "_11c8fhey",
18
+ neutral: "_syazi7uo",
19
+ warning: "_syaz1xn9",
20
+ danger: "_syaz1tmw"
21
+ };
22
+ const iconStyles = {
23
+ base: "_1e0c1txw _1o9zidpf"
24
+ };
25
+ const DEFAULT_MAX_WIDTH = 180;
26
+ const defaultIconLabels = {
27
+ neutral: 'Date',
28
+ warning: 'Warning',
29
+ danger: 'Danger'
30
+ };
31
+
32
+ /**
33
+ * __DateLabel__
34
+ *
35
+ * A date label is a compact label to display dates for quick recognition.
36
+ * It supports three appearances: `neutral`, `warning`, and `danger`.
37
+ *
38
+ * - [Examples](https://atlassian.design/components/date-label/examples)
39
+ * - [Code](https://atlassian.design/components/date-label/code)
40
+ * - [Usage](https://atlassian.design/components/date-label/usage)
41
+ */
42
+ export default function DateLabel({
43
+ label,
44
+ appearance = 'neutral',
45
+ hasIconBefore = true,
46
+ maxWidth = DEFAULT_MAX_WIDTH,
47
+ isSpacious = false,
48
+ iconLabel,
49
+ testId
50
+ }) {
51
+ const maxWidthValue = typeof maxWidth === 'string' ? maxWidth : `${maxWidth}px`;
52
+ const resolvedIconLabel = iconLabel !== undefined ? iconLabel : defaultIconLabels[appearance];
53
+ const iconSize = isSpacious ? 'medium' : 'small';
54
+ return /*#__PURE__*/React.createElement("span", {
55
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
56
+ style: {
57
+ maxWidth: maxWidthValue
58
+ },
59
+ "data-testid": testId,
60
+ className: ax([containerStyles.base, isSpacious && containerStyles.spacious, containerStyles[appearance]])
61
+ }, hasIconBefore && /*#__PURE__*/React.createElement("span", {
62
+ className: ax([iconStyles.base])
63
+ }, appearance === 'neutral' && /*#__PURE__*/React.createElement(CalendarIcon, {
64
+ label: resolvedIconLabel,
65
+ size: iconSize,
66
+ color: "var(--ds-icon-subtlest, #6B6E76)"
67
+ }), appearance === 'warning' && /*#__PURE__*/React.createElement(ClockIcon, {
68
+ label: resolvedIconLabel,
69
+ size: iconSize,
70
+ color: "var(--ds-icon-warning, #E06C00)"
71
+ }), appearance === 'danger' && /*#__PURE__*/React.createElement(WarningOutlineIcon, {
72
+ label: resolvedIconLabel,
73
+ size: iconSize,
74
+ color: "var(--ds-icon-danger, #C9372C)"
75
+ })), /*#__PURE__*/React.createElement("span", {
76
+ className: ax([textStyles.base, isSpacious && textStyles.spacious, textStyles[appearance]])
77
+ }, label));
78
+ }
File without changes
@@ -0,0 +1,62 @@
1
+ ._11c8fhey{font:var(--ds-font-body,normal 400 14px/20px "Atlassian Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
2
+ ._11c8wadc{font:var(--ds-font-body-small,normal 400 9pt/1pc "Atlassian Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
3
+ ._2rko12b0{border-radius:var(--ds-radius-small,4px)}
4
+ ._2rko1qi0{border-radius:var(--ds-radius-medium,6px)}
5
+ ._zulp12x7{gap:var(--ds-space-075,6px)}
6
+ ._zulp1b66{gap:var(--ds-space-050,4px)}
7
+ ._189ee4h9{border-width:var(--ds-border-width,1px)}
8
+ ._18zr1b66{padding-inline:var(--ds-space-050,4px)}
9
+ ._18zrutpp{padding-inline:var(--ds-space-150,9pt)}
10
+ ._1dqonqa1{border-style:solid}
11
+ ._1h6d1mzp{border-color:var(--ds-border-danger-subtle,#fd9891)}
12
+ ._1h6d1wfx{border-color:var(--ds-border-warning-subtle,#fbc828)}
13
+ ._1h6dmsup{border-color:var(--ds-border-accent-gray-subtle,#b7b9be)}
14
+ ._1rjc1b66{padding-block:var(--ds-space-050,4px)}
15
+ ._1rjcv77o{padding-block:var(--ds-space-025,2px)}
16
+ ._152tze3t{inset-block-start:var(--ds-space-0,0)}
17
+ ._18m915vq{overflow-y:hidden}
18
+ ._1bah1h6o{justify-content:center}
19
+ ._1bto1l2s{text-overflow:ellipsis}
20
+ ._1e02ze3t{inset-inline-start:var(--ds-space-0,0)}
21
+ ._1e0c116y{display:inline-flex}
22
+ ._1e0c1txw{display:flex}
23
+ ._1o9zidpf{flex-shrink:0}
24
+ ._1reo15vq{overflow-x:hidden}
25
+ ._1tkeviql{min-height:2rem}
26
+ ._1ul9idpf{min-width:0}
27
+ ._2lx2vrvc{flex-direction:row}
28
+ ._4cvr1h6o{align-items:center}
29
+ ._80omtlke{cursor:pointer}
30
+ ._bfhk1j28{background-color:transparent}
31
+ ._bfhkfcek{background-color:var(--ds-background-neutral-subtle-pressed,#0b120e24)}
32
+ ._kqswh2mm{position:relative}
33
+ ._kqswstnw{position:absolute}
34
+ ._lcxvglyw{pointer-events:none}
35
+ ._o5721q9c{white-space:nowrap}
36
+ ._rjxpze3t{inset-inline-end:var(--ds-space-0,0)}
37
+ ._syaz1tmw{color:var(--ds-text-danger,#ae2e24)}
38
+ ._syaz1xn9{color:var(--ds-text-warning,#9e4c00)}
39
+ ._syazi7uo{color:var(--ds-text,#292a2e)}
40
+ ._syazmgs1{color:var(--ds-text-warning-bolder,#693200)}
41
+ ._tzy4idpf{opacity:0}
42
+ ._u7coze3t{inset-block-end:var(--ds-space-0,0)}
43
+ ._vchhusvi{box-sizing:border-box}
44
+ [data-appearance=danger] ._4fvhs4qr{color:var(--ds-icon-danger,#c9372c)}
45
+ [data-appearance=danger]:active ._1lj41tmw{color:var(--ds-text-danger,#ae2e24)}
46
+ [data-appearance=danger]:hover ._1dyy1tmw{color:var(--ds-text-danger,#ae2e24)}
47
+ [data-appearance=danger][data-selected] ._1x3r1tmw{color:var(--ds-text-danger,#ae2e24)}
48
+ [data-appearance=neutral] ._n4f71cv2{color:var(--ds-icon-subtlest,#6b6e76)}
49
+ [data-appearance=neutral]:active ._otptazsu{color:var(--ds-text-subtle,#505258)}
50
+ [data-appearance=neutral]:hover ._j5nqazsu{color:var(--ds-text-subtle,#505258)}
51
+ [data-appearance=neutral][data-selected] ._dlfuazsu{color:var(--ds-text-subtle,#505258)}
52
+ [data-appearance=warning] ._bunzervl{color:var(--ds-icon-warning,#e06c00)}
53
+ [data-appearance=warning]:active ._1cgs1xn9{color:var(--ds-text-warning,#9e4c00)}
54
+ [data-appearance=warning]:hover ._1ky61xn9{color:var(--ds-text-warning,#9e4c00)}
55
+ [data-appearance=warning][data-selected] ._52yy1xn9{color:var(--ds-text-warning,#9e4c00)}
56
+ ._128mdkaa:focus-visible{outline-width:var(--ds-border-width-focused,2px)}
57
+ ._1ah3v77o:focus-visible{outline-offset:var(--ds-space-025,2px)}
58
+ ._mizu1v1w:focus-visible{outline-color:var(--ds-border-focused,#4688ec)}
59
+ ._ra3xnqa1:focus-visible{outline-style:solid}
60
+ ._irr31dpa:hover{background-color:var(--ds-background-neutral-subtle-hovered,#0515240f)}
61
+ ._1di6fcek:active{background-color:var(--ds-background-neutral-subtle-pressed,#0b120e24)}
62
+ ._9h8hmgs1:active{color:var(--ds-text-warning-bolder,#693200)}
@@ -0,0 +1,126 @@
1
+ /* index.tsx generated by @compiled/babel-plugin v0.39.1 */
2
+ import "./index.compiled.css";
3
+ import * as React from 'react';
4
+ import { ax, ix } from "@compiled/react/runtime";
5
+ import WarningOutlineIcon from '@atlaskit/icon-lab/core/warning-outline';
6
+ import CalendarIcon from '@atlaskit/icon/core/calendar';
7
+ import ChevronDownIcon from '@atlaskit/icon/core/chevron-down';
8
+ import ClockIcon from '@atlaskit/icon/core/clock';
9
+ import Spinner from '@atlaskit/spinner';
10
+ const containerStyles = {
11
+ base: "_zulp1b66 _2rko12b0 _1rjcv77o _18zr1b66 _1dqonqa1 _189ee4h9 _kqswh2mm _vchhusvi _1e0c116y _2lx2vrvc _4cvr1h6o _80omtlke _bfhk1j28 _mizu1v1w _128mdkaa _ra3xnqa1 _1ah3v77o",
12
+ hoveredAndPressed: "_irr31dpa _1di6fcek",
13
+ spacious: "_2rko1qi0 _zulp12x7 _1rjc1b66 _18zrutpp _1tkeviql",
14
+ neutral: "_1h6dmsup _syazi7uo",
15
+ warning: "_1h6d1wfx _syaz1xn9 _9h8hmgs1",
16
+ danger: "_1h6d1mzp _syaz1tmw",
17
+ selected: "_bfhkfcek",
18
+ selectedWarning: "_syazmgs1"
19
+ };
20
+ const textStyles = {
21
+ base: "_11c8wadc _1reo15vq _18m915vq _1bto1l2s _o5721q9c _1ul9idpf",
22
+ spacious: "_11c8fhey"
23
+ };
24
+
25
+ /* eslint-disable @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors */
26
+ const iconStyles = {
27
+ base: "_1e0c1txw _1o9zidpf _n4f71cv2 _j5nqazsu _otptazsu _dlfuazsu _bunzervl _1ky61xn9 _1cgs1xn9 _52yy1xn9 _4fvhs4qr _1dyy1tmw _1lj41tmw _1x3r1tmw"
28
+ };
29
+ /* eslint-enable @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors */
30
+
31
+ const loadingStyles = {
32
+ overlay: "_1e0c1txw _kqswstnw _4cvr1h6o _1bah1h6o _152tze3t _u7coze3t _1e02ze3t _rjxpze3t _lcxvglyw"
33
+ };
34
+ const inlineStyles = {
35
+ base: "_zulp1b66 _1e0c116y _2lx2vrvc _4cvr1h6o _1ul9idpf",
36
+ spacious: "_zulp12x7",
37
+ loading: "_tzy4idpf"
38
+ };
39
+ const DEFAULT_MAX_WIDTH = 200;
40
+ const defaultIconLabels = {
41
+ neutral: 'Date',
42
+ warning: 'Warning',
43
+ danger: 'Danger'
44
+ };
45
+
46
+ /**
47
+ * __DateLabelDropdownTrigger__
48
+ *
49
+ * An interactive date label that acts as a dropdown trigger.
50
+ * Renders as a `<button>` with hover, pressed, selected, and focus ring states,
51
+ * and a chevron icon on the right to signal interactivity.
52
+ *
53
+ * Supports all three appearances (`neutral`, `warning`, `danger`),
54
+ * the `isSpacious` variant, and `isSelected` for open/active dropdown state.
55
+ *
56
+ * - [Examples](https://atlassian.design/components/date-label/examples)
57
+ * - [Code](https://atlassian.design/components/date-label/code)
58
+ * - [Usage](https://atlassian.design/components/date-label/usage)
59
+ */
60
+ export default function DateLabelDropdownTrigger({
61
+ label,
62
+ appearance = 'neutral',
63
+ hasIconBefore = true,
64
+ isSpacious = false,
65
+ isSelected = false,
66
+ isLoading = false,
67
+ maxWidth = DEFAULT_MAX_WIDTH,
68
+ iconLabel,
69
+ onClick,
70
+ 'aria-controls': ariaControls,
71
+ 'aria-expanded': ariaExpanded,
72
+ 'aria-haspopup': ariaHaspopup,
73
+ 'aria-label': ariaLabel,
74
+ testId
75
+ }) {
76
+ const maxWidthValue = typeof maxWidth === 'string' ? maxWidth : `${maxWidth}px`;
77
+ const iconSize = isSpacious ? 'medium' : 'small';
78
+ const resolvedIconLabel = iconLabel !== undefined ? iconLabel : defaultIconLabels[appearance];
79
+ return /*#__PURE__*/React.createElement("button", {
80
+ type: "button",
81
+ onClick: isLoading ? undefined : onClick,
82
+ "aria-disabled": isLoading || undefined,
83
+ "aria-controls": ariaControls,
84
+ "aria-expanded": ariaExpanded,
85
+ "aria-haspopup": ariaHaspopup,
86
+ "aria-label": ariaLabel,
87
+ "data-testid": testId,
88
+ "data-appearance": appearance,
89
+ "data-selected": isSelected || undefined
90
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
91
+ ,
92
+ style: {
93
+ maxWidth: maxWidthValue,
94
+ cursor: isLoading ? 'progress' : undefined
95
+ },
96
+ className: ax([containerStyles.base, isSpacious && containerStyles.spacious, containerStyles[appearance], isSelected ? containerStyles.selected : containerStyles.hoveredAndPressed, isSelected && appearance === 'warning' && containerStyles.selectedWarning])
97
+ }, /*#__PURE__*/React.createElement("span", {
98
+ className: ax([inlineStyles.base, isSpacious && inlineStyles.spacious, isLoading && inlineStyles.loading])
99
+ }, hasIconBefore && /*#__PURE__*/React.createElement("span", {
100
+ className: ax([iconStyles.base])
101
+ }, appearance === 'neutral' && /*#__PURE__*/React.createElement(CalendarIcon, {
102
+ label: resolvedIconLabel,
103
+ size: iconSize,
104
+ color: "currentColor"
105
+ }), appearance === 'warning' && /*#__PURE__*/React.createElement(ClockIcon, {
106
+ label: resolvedIconLabel,
107
+ size: iconSize,
108
+ color: "currentColor"
109
+ }), appearance === 'danger' && /*#__PURE__*/React.createElement(WarningOutlineIcon, {
110
+ label: resolvedIconLabel,
111
+ size: iconSize,
112
+ color: "currentColor"
113
+ })), /*#__PURE__*/React.createElement("span", {
114
+ className: ax([textStyles.base, isSpacious && textStyles.spacious])
115
+ }, label)), isLoading ? /*#__PURE__*/React.createElement("span", {
116
+ className: ax([loadingStyles.overlay])
117
+ }, /*#__PURE__*/React.createElement(Spinner, {
118
+ size: isSpacious ? 'small' : 'xsmall',
119
+ label: ", Loading",
120
+ testId: testId ? `${testId}--loading-spinner` : undefined
121
+ })) : /*#__PURE__*/React.createElement(ChevronDownIcon, {
122
+ label: "",
123
+ size: iconSize,
124
+ color: "currentColor"
125
+ }));
126
+ }
@@ -0,0 +1 @@
1
+ export { default } from '../ui/date-label-dropdown-trigger';
@@ -0,0 +1,2 @@
1
+ export { default } from '../ui/date-label';
2
+ export { default as DateLabelDropdownTrigger } from '../ui/date-label-dropdown-trigger';
File without changes
@@ -0,0 +1 @@
1
+ export var DATE_LABEL_TEST_ID = 'date-label';
@@ -0,0 +1,30 @@
1
+ ._11c8fhey{font:var(--ds-font-body,normal 400 14px/20px "Atlassian Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
2
+ ._11c8wadc{font:var(--ds-font-body-small,normal 400 9pt/1pc "Atlassian Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
3
+ ._2rko12b0{border-radius:var(--ds-radius-small,4px)}
4
+ ._2rko1qi0{border-radius:var(--ds-radius-medium,6px)}
5
+ ._zulp12x7{gap:var(--ds-space-075,6px)}
6
+ ._zulp1b66{gap:var(--ds-space-050,4px)}
7
+ ._189ee4h9{border-width:var(--ds-border-width,1px)}
8
+ ._18zr1b66{padding-inline:var(--ds-space-050,4px)}
9
+ ._18zrutpp{padding-inline:var(--ds-space-150,9pt)}
10
+ ._1dqonqa1{border-style:solid}
11
+ ._1h6d1mzp{border-color:var(--ds-border-danger-subtle,#fd9891)}
12
+ ._1h6d1wfx{border-color:var(--ds-border-warning-subtle,#fbc828)}
13
+ ._1h6dmsup{border-color:var(--ds-border-accent-gray-subtle,#b7b9be)}
14
+ ._1rjc1b66{padding-block:var(--ds-space-050,4px)}
15
+ ._1rjcv77o{padding-block:var(--ds-space-025,2px)}
16
+ ._18m915vq{overflow-y:hidden}
17
+ ._1bto1l2s{text-overflow:ellipsis}
18
+ ._1e0c116y{display:inline-flex}
19
+ ._1e0c1txw{display:flex}
20
+ ._1o9zidpf{flex-shrink:0}
21
+ ._1reo15vq{overflow-x:hidden}
22
+ ._1tkeviql{min-height:2rem}
23
+ ._1ul9idpf{min-width:0}
24
+ ._2lx2vrvc{flex-direction:row}
25
+ ._4cvr1h6o{align-items:center}
26
+ ._o5721q9c{white-space:nowrap}
27
+ ._syaz1tmw{color:var(--ds-text-danger,#ae2e24)}
28
+ ._syaz1xn9{color:var(--ds-text-warning,#9e4c00)}
29
+ ._syazi7uo{color:var(--ds-text,#292a2e)}
30
+ ._vchhusvi{box-sizing:border-box}
@@ -0,0 +1,81 @@
1
+ /* index.tsx generated by @compiled/babel-plugin v0.39.1 */
2
+ import "./index.compiled.css";
3
+ import * as React from 'react';
4
+ import { ax, ix } from "@compiled/react/runtime";
5
+ import WarningOutlineIcon from '@atlaskit/icon-lab/core/warning-outline';
6
+ import CalendarIcon from '@atlaskit/icon/core/calendar';
7
+ import ClockIcon from '@atlaskit/icon/core/clock';
8
+ var containerStyles = {
9
+ base: "_zulp1b66 _2rko12b0 _1rjcv77o _18zr1b66 _1dqonqa1 _189ee4h9 _vchhusvi _1e0c116y _2lx2vrvc _4cvr1h6o",
10
+ spacious: "_2rko1qi0 _zulp12x7 _1rjc1b66 _18zrutpp _1tkeviql",
11
+ neutral: "_1h6dmsup",
12
+ warning: "_1h6d1wfx",
13
+ danger: "_1h6d1mzp"
14
+ };
15
+ var textStyles = {
16
+ base: "_11c8wadc _1reo15vq _18m915vq _1bto1l2s _o5721q9c _1ul9idpf",
17
+ spacious: "_11c8fhey",
18
+ neutral: "_syazi7uo",
19
+ warning: "_syaz1xn9",
20
+ danger: "_syaz1tmw"
21
+ };
22
+ var iconStyles = {
23
+ base: "_1e0c1txw _1o9zidpf"
24
+ };
25
+ var DEFAULT_MAX_WIDTH = 180;
26
+ var defaultIconLabels = {
27
+ neutral: 'Date',
28
+ warning: 'Warning',
29
+ danger: 'Danger'
30
+ };
31
+
32
+ /**
33
+ * __DateLabel__
34
+ *
35
+ * A date label is a compact label to display dates for quick recognition.
36
+ * It supports three appearances: `neutral`, `warning`, and `danger`.
37
+ *
38
+ * - [Examples](https://atlassian.design/components/date-label/examples)
39
+ * - [Code](https://atlassian.design/components/date-label/code)
40
+ * - [Usage](https://atlassian.design/components/date-label/usage)
41
+ */
42
+ export default function DateLabel(_ref) {
43
+ var label = _ref.label,
44
+ _ref$appearance = _ref.appearance,
45
+ appearance = _ref$appearance === void 0 ? 'neutral' : _ref$appearance,
46
+ _ref$hasIconBefore = _ref.hasIconBefore,
47
+ hasIconBefore = _ref$hasIconBefore === void 0 ? true : _ref$hasIconBefore,
48
+ _ref$maxWidth = _ref.maxWidth,
49
+ maxWidth = _ref$maxWidth === void 0 ? DEFAULT_MAX_WIDTH : _ref$maxWidth,
50
+ _ref$isSpacious = _ref.isSpacious,
51
+ isSpacious = _ref$isSpacious === void 0 ? false : _ref$isSpacious,
52
+ iconLabel = _ref.iconLabel,
53
+ testId = _ref.testId;
54
+ var maxWidthValue = typeof maxWidth === 'string' ? maxWidth : "".concat(maxWidth, "px");
55
+ var resolvedIconLabel = iconLabel !== undefined ? iconLabel : defaultIconLabels[appearance];
56
+ var iconSize = isSpacious ? 'medium' : 'small';
57
+ return /*#__PURE__*/React.createElement("span", {
58
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
59
+ style: {
60
+ maxWidth: maxWidthValue
61
+ },
62
+ "data-testid": testId,
63
+ className: ax([containerStyles.base, isSpacious && containerStyles.spacious, containerStyles[appearance]])
64
+ }, hasIconBefore && /*#__PURE__*/React.createElement("span", {
65
+ className: ax([iconStyles.base])
66
+ }, appearance === 'neutral' && /*#__PURE__*/React.createElement(CalendarIcon, {
67
+ label: resolvedIconLabel,
68
+ size: iconSize,
69
+ color: "var(--ds-icon-subtlest, #6B6E76)"
70
+ }), appearance === 'warning' && /*#__PURE__*/React.createElement(ClockIcon, {
71
+ label: resolvedIconLabel,
72
+ size: iconSize,
73
+ color: "var(--ds-icon-warning, #E06C00)"
74
+ }), appearance === 'danger' && /*#__PURE__*/React.createElement(WarningOutlineIcon, {
75
+ label: resolvedIconLabel,
76
+ size: iconSize,
77
+ color: "var(--ds-icon-danger, #C9372C)"
78
+ })), /*#__PURE__*/React.createElement("span", {
79
+ className: ax([textStyles.base, isSpacious && textStyles.spacious, textStyles[appearance]])
80
+ }, label));
81
+ }
File without changes
@@ -0,0 +1,62 @@
1
+ ._11c8fhey{font:var(--ds-font-body,normal 400 14px/20px "Atlassian Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
2
+ ._11c8wadc{font:var(--ds-font-body-small,normal 400 9pt/1pc "Atlassian Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
3
+ ._2rko12b0{border-radius:var(--ds-radius-small,4px)}
4
+ ._2rko1qi0{border-radius:var(--ds-radius-medium,6px)}
5
+ ._zulp12x7{gap:var(--ds-space-075,6px)}
6
+ ._zulp1b66{gap:var(--ds-space-050,4px)}
7
+ ._189ee4h9{border-width:var(--ds-border-width,1px)}
8
+ ._18zr1b66{padding-inline:var(--ds-space-050,4px)}
9
+ ._18zrutpp{padding-inline:var(--ds-space-150,9pt)}
10
+ ._1dqonqa1{border-style:solid}
11
+ ._1h6d1mzp{border-color:var(--ds-border-danger-subtle,#fd9891)}
12
+ ._1h6d1wfx{border-color:var(--ds-border-warning-subtle,#fbc828)}
13
+ ._1h6dmsup{border-color:var(--ds-border-accent-gray-subtle,#b7b9be)}
14
+ ._1rjc1b66{padding-block:var(--ds-space-050,4px)}
15
+ ._1rjcv77o{padding-block:var(--ds-space-025,2px)}
16
+ ._152tze3t{inset-block-start:var(--ds-space-0,0)}
17
+ ._18m915vq{overflow-y:hidden}
18
+ ._1bah1h6o{justify-content:center}
19
+ ._1bto1l2s{text-overflow:ellipsis}
20
+ ._1e02ze3t{inset-inline-start:var(--ds-space-0,0)}
21
+ ._1e0c116y{display:inline-flex}
22
+ ._1e0c1txw{display:flex}
23
+ ._1o9zidpf{flex-shrink:0}
24
+ ._1reo15vq{overflow-x:hidden}
25
+ ._1tkeviql{min-height:2rem}
26
+ ._1ul9idpf{min-width:0}
27
+ ._2lx2vrvc{flex-direction:row}
28
+ ._4cvr1h6o{align-items:center}
29
+ ._80omtlke{cursor:pointer}
30
+ ._bfhk1j28{background-color:transparent}
31
+ ._bfhkfcek{background-color:var(--ds-background-neutral-subtle-pressed,#0b120e24)}
32
+ ._kqswh2mm{position:relative}
33
+ ._kqswstnw{position:absolute}
34
+ ._lcxvglyw{pointer-events:none}
35
+ ._o5721q9c{white-space:nowrap}
36
+ ._rjxpze3t{inset-inline-end:var(--ds-space-0,0)}
37
+ ._syaz1tmw{color:var(--ds-text-danger,#ae2e24)}
38
+ ._syaz1xn9{color:var(--ds-text-warning,#9e4c00)}
39
+ ._syazi7uo{color:var(--ds-text,#292a2e)}
40
+ ._syazmgs1{color:var(--ds-text-warning-bolder,#693200)}
41
+ ._tzy4idpf{opacity:0}
42
+ ._u7coze3t{inset-block-end:var(--ds-space-0,0)}
43
+ ._vchhusvi{box-sizing:border-box}
44
+ [data-appearance=danger] ._4fvhs4qr{color:var(--ds-icon-danger,#c9372c)}
45
+ [data-appearance=danger]:active ._1lj41tmw{color:var(--ds-text-danger,#ae2e24)}
46
+ [data-appearance=danger]:hover ._1dyy1tmw{color:var(--ds-text-danger,#ae2e24)}
47
+ [data-appearance=danger][data-selected] ._1x3r1tmw{color:var(--ds-text-danger,#ae2e24)}
48
+ [data-appearance=neutral] ._n4f71cv2{color:var(--ds-icon-subtlest,#6b6e76)}
49
+ [data-appearance=neutral]:active ._otptazsu{color:var(--ds-text-subtle,#505258)}
50
+ [data-appearance=neutral]:hover ._j5nqazsu{color:var(--ds-text-subtle,#505258)}
51
+ [data-appearance=neutral][data-selected] ._dlfuazsu{color:var(--ds-text-subtle,#505258)}
52
+ [data-appearance=warning] ._bunzervl{color:var(--ds-icon-warning,#e06c00)}
53
+ [data-appearance=warning]:active ._1cgs1xn9{color:var(--ds-text-warning,#9e4c00)}
54
+ [data-appearance=warning]:hover ._1ky61xn9{color:var(--ds-text-warning,#9e4c00)}
55
+ [data-appearance=warning][data-selected] ._52yy1xn9{color:var(--ds-text-warning,#9e4c00)}
56
+ ._128mdkaa:focus-visible{outline-width:var(--ds-border-width-focused,2px)}
57
+ ._1ah3v77o:focus-visible{outline-offset:var(--ds-space-025,2px)}
58
+ ._mizu1v1w:focus-visible{outline-color:var(--ds-border-focused,#4688ec)}
59
+ ._ra3xnqa1:focus-visible{outline-style:solid}
60
+ ._irr31dpa:hover{background-color:var(--ds-background-neutral-subtle-hovered,#0515240f)}
61
+ ._1di6fcek:active{background-color:var(--ds-background-neutral-subtle-pressed,#0b120e24)}
62
+ ._9h8hmgs1:active{color:var(--ds-text-warning-bolder,#693200)}
@@ -0,0 +1,131 @@
1
+ /* index.tsx generated by @compiled/babel-plugin v0.39.1 */
2
+ import "./index.compiled.css";
3
+ import * as React from 'react';
4
+ import { ax, ix } from "@compiled/react/runtime";
5
+ import WarningOutlineIcon from '@atlaskit/icon-lab/core/warning-outline';
6
+ import CalendarIcon from '@atlaskit/icon/core/calendar';
7
+ import ChevronDownIcon from '@atlaskit/icon/core/chevron-down';
8
+ import ClockIcon from '@atlaskit/icon/core/clock';
9
+ import Spinner from '@atlaskit/spinner';
10
+ var containerStyles = {
11
+ base: "_zulp1b66 _2rko12b0 _1rjcv77o _18zr1b66 _1dqonqa1 _189ee4h9 _kqswh2mm _vchhusvi _1e0c116y _2lx2vrvc _4cvr1h6o _80omtlke _bfhk1j28 _mizu1v1w _128mdkaa _ra3xnqa1 _1ah3v77o",
12
+ hoveredAndPressed: "_irr31dpa _1di6fcek",
13
+ spacious: "_2rko1qi0 _zulp12x7 _1rjc1b66 _18zrutpp _1tkeviql",
14
+ neutral: "_1h6dmsup _syazi7uo",
15
+ warning: "_1h6d1wfx _syaz1xn9 _9h8hmgs1",
16
+ danger: "_1h6d1mzp _syaz1tmw",
17
+ selected: "_bfhkfcek",
18
+ selectedWarning: "_syazmgs1"
19
+ };
20
+ var textStyles = {
21
+ base: "_11c8wadc _1reo15vq _18m915vq _1bto1l2s _o5721q9c _1ul9idpf",
22
+ spacious: "_11c8fhey"
23
+ };
24
+
25
+ /* eslint-disable @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors */
26
+ var iconStyles = {
27
+ base: "_1e0c1txw _1o9zidpf _n4f71cv2 _j5nqazsu _otptazsu _dlfuazsu _bunzervl _1ky61xn9 _1cgs1xn9 _52yy1xn9 _4fvhs4qr _1dyy1tmw _1lj41tmw _1x3r1tmw"
28
+ };
29
+ /* eslint-enable @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors */
30
+
31
+ var loadingStyles = {
32
+ overlay: "_1e0c1txw _kqswstnw _4cvr1h6o _1bah1h6o _152tze3t _u7coze3t _1e02ze3t _rjxpze3t _lcxvglyw"
33
+ };
34
+ var inlineStyles = {
35
+ base: "_zulp1b66 _1e0c116y _2lx2vrvc _4cvr1h6o _1ul9idpf",
36
+ spacious: "_zulp12x7",
37
+ loading: "_tzy4idpf"
38
+ };
39
+ var DEFAULT_MAX_WIDTH = 200;
40
+ var defaultIconLabels = {
41
+ neutral: 'Date',
42
+ warning: 'Warning',
43
+ danger: 'Danger'
44
+ };
45
+
46
+ /**
47
+ * __DateLabelDropdownTrigger__
48
+ *
49
+ * An interactive date label that acts as a dropdown trigger.
50
+ * Renders as a `<button>` with hover, pressed, selected, and focus ring states,
51
+ * and a chevron icon on the right to signal interactivity.
52
+ *
53
+ * Supports all three appearances (`neutral`, `warning`, `danger`),
54
+ * the `isSpacious` variant, and `isSelected` for open/active dropdown state.
55
+ *
56
+ * - [Examples](https://atlassian.design/components/date-label/examples)
57
+ * - [Code](https://atlassian.design/components/date-label/code)
58
+ * - [Usage](https://atlassian.design/components/date-label/usage)
59
+ */
60
+ export default function DateLabelDropdownTrigger(_ref) {
61
+ var label = _ref.label,
62
+ _ref$appearance = _ref.appearance,
63
+ appearance = _ref$appearance === void 0 ? 'neutral' : _ref$appearance,
64
+ _ref$hasIconBefore = _ref.hasIconBefore,
65
+ hasIconBefore = _ref$hasIconBefore === void 0 ? true : _ref$hasIconBefore,
66
+ _ref$isSpacious = _ref.isSpacious,
67
+ isSpacious = _ref$isSpacious === void 0 ? false : _ref$isSpacious,
68
+ _ref$isSelected = _ref.isSelected,
69
+ isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
70
+ _ref$isLoading = _ref.isLoading,
71
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
72
+ _ref$maxWidth = _ref.maxWidth,
73
+ maxWidth = _ref$maxWidth === void 0 ? DEFAULT_MAX_WIDTH : _ref$maxWidth,
74
+ iconLabel = _ref.iconLabel,
75
+ onClick = _ref.onClick,
76
+ ariaControls = _ref['aria-controls'],
77
+ ariaExpanded = _ref['aria-expanded'],
78
+ ariaHaspopup = _ref['aria-haspopup'],
79
+ ariaLabel = _ref['aria-label'],
80
+ testId = _ref.testId;
81
+ var maxWidthValue = typeof maxWidth === 'string' ? maxWidth : "".concat(maxWidth, "px");
82
+ var iconSize = isSpacious ? 'medium' : 'small';
83
+ var resolvedIconLabel = iconLabel !== undefined ? iconLabel : defaultIconLabels[appearance];
84
+ return /*#__PURE__*/React.createElement("button", {
85
+ type: "button",
86
+ onClick: isLoading ? undefined : onClick,
87
+ "aria-disabled": isLoading || undefined,
88
+ "aria-controls": ariaControls,
89
+ "aria-expanded": ariaExpanded,
90
+ "aria-haspopup": ariaHaspopup,
91
+ "aria-label": ariaLabel,
92
+ "data-testid": testId,
93
+ "data-appearance": appearance,
94
+ "data-selected": isSelected || undefined
95
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
96
+ ,
97
+ style: {
98
+ maxWidth: maxWidthValue,
99
+ cursor: isLoading ? 'progress' : undefined
100
+ },
101
+ className: ax([containerStyles.base, isSpacious && containerStyles.spacious, containerStyles[appearance], isSelected ? containerStyles.selected : containerStyles.hoveredAndPressed, isSelected && appearance === 'warning' && containerStyles.selectedWarning])
102
+ }, /*#__PURE__*/React.createElement("span", {
103
+ className: ax([inlineStyles.base, isSpacious && inlineStyles.spacious, isLoading && inlineStyles.loading])
104
+ }, hasIconBefore && /*#__PURE__*/React.createElement("span", {
105
+ className: ax([iconStyles.base])
106
+ }, appearance === 'neutral' && /*#__PURE__*/React.createElement(CalendarIcon, {
107
+ label: resolvedIconLabel,
108
+ size: iconSize,
109
+ color: "currentColor"
110
+ }), appearance === 'warning' && /*#__PURE__*/React.createElement(ClockIcon, {
111
+ label: resolvedIconLabel,
112
+ size: iconSize,
113
+ color: "currentColor"
114
+ }), appearance === 'danger' && /*#__PURE__*/React.createElement(WarningOutlineIcon, {
115
+ label: resolvedIconLabel,
116
+ size: iconSize,
117
+ color: "currentColor"
118
+ })), /*#__PURE__*/React.createElement("span", {
119
+ className: ax([textStyles.base, isSpacious && textStyles.spacious])
120
+ }, label)), isLoading ? /*#__PURE__*/React.createElement("span", {
121
+ className: ax([loadingStyles.overlay])
122
+ }, /*#__PURE__*/React.createElement(Spinner, {
123
+ size: isSpacious ? 'small' : 'xsmall',
124
+ label: ", Loading",
125
+ testId: testId ? "".concat(testId, "--loading-spinner") : undefined
126
+ })) : /*#__PURE__*/React.createElement(ChevronDownIcon, {
127
+ label: "",
128
+ size: iconSize,
129
+ color: "currentColor"
130
+ }));
131
+ }
@@ -0,0 +1,2 @@
1
+ export type { DateLabelDropdownTriggerProps, DateLabelDropdownTriggerAppearance } from '../ui/date-label-dropdown-trigger/types';
2
+ export { default } from '../ui/date-label-dropdown-trigger';
@@ -0,0 +1,4 @@
1
+ export type { DateLabelProps, DateLabelAppearance } from '../ui/date-label/types';
2
+ export { default } from '../ui/date-label';
3
+ export type { DateLabelDropdownTriggerProps, DateLabelDropdownTriggerAppearance } from '../ui/date-label-dropdown-trigger/types';
4
+ export { default as DateLabelDropdownTrigger } from '../ui/date-label-dropdown-trigger';
@@ -0,0 +1,2 @@
1
+ export type { DateLabelProps, DateLabelAppearance } from '../ui/date-label/types';
2
+ export type { DateLabelDropdownTriggerProps, DateLabelDropdownTriggerAppearance } from '../ui/date-label-dropdown-trigger/types';
@@ -0,0 +1 @@
1
+ export declare const DATE_LABEL_TEST_ID = "date-label";
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @jsxRuntime classic
3
+ * @jsx jsx
4
+ */
5
+ import type { DateLabelProps } from './types';
6
+ /**
7
+ * __DateLabel__
8
+ *
9
+ * A date label is a compact label to display dates for quick recognition.
10
+ * It supports three appearances: `neutral`, `warning`, and `danger`.
11
+ *
12
+ * - [Examples](https://atlassian.design/components/date-label/examples)
13
+ * - [Code](https://atlassian.design/components/date-label/code)
14
+ * - [Usage](https://atlassian.design/components/date-label/usage)
15
+ */
16
+ export default function DateLabel({ label, appearance, hasIconBefore, maxWidth, isSpacious, iconLabel, testId, }: DateLabelProps): JSX.Element;