@licklist/design 0.78.29 → 0.78.31

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 (37) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +14 -0
  4. package/dist/styles/iframe-page/Page.scss +2 -2
  5. package/dist/v2/components/Alert/Alert.js +87 -0
  6. package/dist/v2/components/Alert/Alert.scss.js +6 -0
  7. package/dist/v2/components/Button/Button.js +121 -0
  8. package/dist/v2/components/Button/Button.scss.js +6 -0
  9. package/dist/v2/components/Checkbox/Checkbox.js +231 -0
  10. package/dist/v2/components/Checkbox/Checkbox.scss.js +6 -0
  11. package/dist/v2/components/FormField/FormField.js +98 -0
  12. package/dist/v2/components/FormField/FormField.scss.js +6 -0
  13. package/dist/v2/components/NPSScore/NPSScore.js +546 -0
  14. package/dist/v2/components/NPSScore/NPSScore.scss.js +6 -0
  15. package/dist/v2/components/NewInput/NewInput.js +134 -0
  16. package/dist/v2/components/NewPageHeader/NewPageHeader.js +36 -0
  17. package/dist/v2/components/NewPageHeader/NewPageHeader.scss.js +6 -0
  18. package/dist/v2/components/SectionHeader/SectionHeader.js +13 -0
  19. package/dist/v2/components/SectionHeader/SectionHeader.scss.js +6 -0
  20. package/dist/v2/components/WYSIWYGEditor/Icons.js +221 -0
  21. package/dist/v2/components/WYSIWYGEditor/WYSIWYGEditor.js +358 -0
  22. package/dist/v2/components/WYSIWYGEditor/WYSIWYGEditor.scss.js +6 -0
  23. package/dist/v2/navigation/DashboardLayout/DashboardLayout.scss.js +1 -1
  24. package/dist/v2/pages/Settings/components/SidebarCustomisation.d.ts.map +1 -1
  25. package/dist/v2/pages/Settings/components/SidebarCustomisation.js +32 -4
  26. package/dist/v2/pages/Settings/components/SidebarCustomisation.scss.js +1 -1
  27. package/dist/v2/pages/Settings/components/SidebarNavItem.d.ts.map +1 -1
  28. package/dist/v2/pages/Settings/components/SidebarNavItem.js +15 -2
  29. package/dist/v2/styles/form/NewInput.scss.js +6 -0
  30. package/package.json +1 -1
  31. package/src/index.ts +1 -0
  32. package/src/styles/iframe-page/Page.scss +2 -2
  33. package/src/v2/navigation/DashboardLayout/DashboardLayout.scss +5 -0
  34. package/src/v2/pages/Settings/components/SidebarCustomisation.scss +1 -1
  35. package/src/v2/pages/Settings/components/SidebarCustomisation.tsx +11 -5
  36. package/src/v2/pages/Settings/components/SidebarNavItem.tsx +2 -2
  37. package/src/v2/styles/tokens/_sizes.scss +3 -0
@@ -1,5 +1,19 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import 'react';
3
+ import { FormField } from '../../../components/FormField/FormField.js';
4
+ import '../../../components/NewInput/NewInput.js';
5
+ import '../../../components/Checkbox/Checkbox.js';
6
+ import '../../../components/WYSIWYGEditor/WYSIWYGEditor.scss.js';
7
+ import '../../../components/Button/Button.scss.js';
8
+ import '../../../components/NewPageHeader/NewPageHeader.scss.js';
9
+ import '../../../components/SectionHeader/SectionHeader.scss.js';
10
+ import '../../../components/Select/Select.scss.js';
11
+ import '../../../components/Tooltip/Tooltip.js';
12
+ import '../../../components/UserAvatar/UserAvatar.scss.js';
13
+ import '../../../components/UserPanel/UserPanel.scss.js';
14
+ import '../../../components/EntityHeader/EntityHeader.scss.js';
15
+ import '../../../components/Alert/Alert.scss.js';
16
+ import '../../../components/NPSScore/NPSScore.scss.js';
3
17
  import './SidebarNavItem.scss.js';
4
18
 
5
19
  var SidebarNavItem = function(param) {
@@ -23,10 +37,9 @@ var SidebarNavItem = function(param) {
23
37
  ]
24
38
  })
25
39
  }),
26
- /*#__PURE__*/ jsx("input", {
40
+ /*#__PURE__*/ jsx(FormField, {
27
41
  type: "text",
28
42
  id: id,
29
- className: "sidebar-nav-item__input ".concat(disabled ? 'sidebar-nav-item__input--disabled' : ''),
30
43
  value: label,
31
44
  onChange: function(e) {
32
45
  return onLabelChange === null || onLabelChange === void 0 ? void 0 : onLabelChange(id, e.target.value);
@@ -0,0 +1,6 @@
1
+ import styleInject from '/opt/atlassian/pipelines/agent/build/node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ":root{--font-family-sans:\"Geist\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Roboto\",\"Helvetica Neue\",Arial,sans-serif;--font-family-mono:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--heading-xxl-size:44px;--heading-xxl-line:48px;--heading-xxl-weight:600;--heading-xl-size:32px;--heading-xl-line:36px;--heading-xl-weight:700;--heading-h1-size:24px;--heading-h1-line:28px;--heading-h1-weight:600;--heading-h2-size:20px;--heading-h2-line:24px;--heading-h2-weight:600;--heading-h3-size:17px;--heading-h3-line:20px;--heading-h3-weight:600;--heading-h4-size:15px;--heading-h4-line:18px;--heading-h4-weight:600;--heading-h5-size:13px;--heading-h5-line:16px;--heading-h5-weight:500;--heading-h6-size:11px;--heading-h6-line:14px;--heading-h6-weight:500;--heading-xxl-mobile-size:32px;--heading-xxl-mobile-line:36px;--heading-xxl-mobile-weight:600;--heading-xl-mobile-size:26px;--heading-xl-mobile-line:30px;--heading-xl-mobile-weight:700;--heading-h1-mobile-size:20px;--heading-h1-mobile-line:23px;--heading-h1-mobile-weight:600;--heading-h2-mobile-size:18px;--heading-h2-mobile-line:22px;--heading-h2-mobile-weight:600;--heading-h3-mobile-size:16px;--heading-h3-mobile-line:18px;--heading-h3-mobile-weight:600;--heading-h4-mobile-size:14px;--heading-h4-mobile-line:16px;--heading-h4-mobile-weight:600;--heading-h5-mobile-size:13px;--heading-h5-mobile-line:16px;--heading-h5-mobile-weight:500;--heading-h6-mobile-size:11px;--heading-h6-mobile-line:14px;--heading-h6-mobile-weight:500;--text-xl-size:20px;--text-xl-line:26px;--text-xl-weight:400;--text-large-size:18px;--text-large-line:24px;--text-large-weight:400;--text-regular-size:15px;--text-regular-line:20px;--text-regular-weight:400;--text-small-size:13px;--text-small-line:16px;--text-small-weight:400;--text-small-emphasis-weight:500;--text-small-bold-weight:600;--text-xs-size:10px;--text-xs-line:13px;--text-xs-weight:500;--text-xs-bold-weight:600}.new-form-input{align-items:flex-start;align-self:stretch;display:flex;flex-direction:column;gap:var(--spacing-sm);width:100%}.new-form-input__label{color:var(--label-primary,#121e52);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:15px;font-style:normal;font-weight:600;line-height:20px}.new-form-input__label-optional{color:var(--labels-main-label-secondary,#626a90);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:var(--text-xs-size,11px);font-weight:400;line-height:var(--text-xs-line,14px);text-align:right}.new-form-input__label-row{align-items:center;display:flex;gap:var(--spacing-reg,16px);justify-content:space-between;width:100%}.new-form-input__input{background-color:var(--surfaces-main-background-secondary);background:var(--surface-secondary);border:2px solid var(--border-primary);border-radius:var(--radius-md);color:var(--labels-main-label-primary,#121e52);flex:1 0 0;font-family:var(--font-family-sans);font-size:var(--text-regular-size);font-weight:var(--text-regular-weight);line-height:var(--text-regular-line);min-height:40px;padding:8px 10px;transition:all .2s ease;width:100%}@media (max-width:768px){.new-form-input__input{font-size:16px}}.new-form-input__input:focus{background-color:var(--surfaces-main-background-secondary,#f8f8fa);border-color:var(--border-selected,#6200ee);outline:none}.new-form-input__input::placeholder{color:var(--labels-main-label-secondary,#626a90)}.new-form-input__textarea{background-color:var(--surfaces-main-background-secondary,#f8f8fa);border:1px solid var(--borders-main-border-primary,#e8e9ef);border-radius:var(--radius-md,4px);color:var(--labels-main-label-primary,#121e52);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:var(--text-regular-size,15px);line-height:var(--text-regular-line,20px);min-height:120px;padding:8px 10px;resize:vertical;transition:all .2s ease;width:100%}@media (max-width:768px){.new-form-input__textarea{font-size:16px}}.new-form-input__textarea:focus{border-color:var(--border-selected,#6200ee);outline:none}.new-form-input__textarea::placeholder{color:var(--labels-main-label-secondary,#626a90)}.new-form-input__input-with-icon{align-items:center;background-color:var(--surfaces-main-background-secondary,#f8f8fa);border:2px solid var(--borders-main-border-primary,#e8e9ef);border-radius:var(--radius-md,4px);display:flex;gap:var(--spacing-sm,8px);min-height:40px;padding:5px}.new-form-input__input-with-icon input{background:#0000;border:none;color:var(--label-primary);flex:1;font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:var(--text-regular-size,15px);line-height:var(--text-regular-line,20px)}@media (max-width:768px){.new-form-input__input-with-icon input{font-size:16px}}.new-form-input__input-with-icon input:focus{outline:none}.new-form-input__input-with-icon input::placeholder{color:var(--labels-main-label-secondary,#626a90)}.new-form-input__input-with-icon .icon{flex-shrink:0;height:22px;width:22px}.new-form-input__verification-code{display:flex;gap:var(--spacing-sm,8px);height:62px}.new-form-input__verification-code .code-input{background-color:var(--surfaces-main-background-secondary,#f8f8fa);border:2px solid var(--borders-main-border-primary,#e8e9ef);border-radius:var(--radius-md,4px);color:var(--labels-main-label-primary,#121e52);flex:1;font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:var(--text-lg-size,18px);font-weight:var(--heading-h3-weight,600);text-align:center;transition:all .2s ease}.new-form-input__verification-code .code-input:focus{border-color:var(--border-selected,#6200ee);outline:none}.new-form-input__helper-text{color:var(--label-secondary,#626a90);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:var(--text-regular-size,15px);font-style:normal;font-weight:400;line-height:var(--text-regular-line,20px);margin-top:2px;min-width:max-content;white-space:nowrap}@media (max-width:768px){.new-form-input__helper-text{word-wrap:break-word;min-width:unset;white-space:normal}}.new-form-input__error-text{color:var(--labels-status-label-error,#ef4444);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:11px;font-style:normal;font-weight:400;line-height:14px;margin-top:2px}.new-form-input--active .new-form-input__input{border-color:var(--border-selected,#6200ee)}.new-form-input--error .new-form-input__input{border-color:var(--borders-status-border-error,#ef4444)}.new-form-input--disabled{opacity:var(--opacity-50,.5);pointer-events:none}";
4
+ styleInject(css_248z);
5
+
6
+ export { css_248z as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@licklist/design",
3
- "version": "0.78.29",
3
+ "version": "0.78.31",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@bitbucket.org/bookedit-licklist/licklist_design.git"
package/src/index.ts CHANGED
@@ -46,6 +46,7 @@ export * from './pages'
46
46
  export { default as RadioButton } from './customRadioButton/RadioButton'
47
47
  export * from './PageNotFound'
48
48
  export * from './UnderMaintenance'
49
+ export * from './v2/components'
49
50
  export * from './v2/dashboard-analytics'
50
51
  export * from './v2/navigation/DashboardLayout'
51
52
  export * from './v2/pages/Settings'
@@ -109,7 +109,7 @@
109
109
  }
110
110
 
111
111
  @include media-breakpoint-down(sm) {
112
- padding: 0.5rem 0 0;
112
+ padding: var(--container-padding-mobile, 16px) 0 0;
113
113
  background-size: 100% 3.5rem;
114
114
  background-color: $snippet-page-body-left-block-background-color;
115
115
 
@@ -118,7 +118,7 @@
118
118
  }
119
119
 
120
120
  .header-block {
121
- padding: 0 0.5rem 0.5rem;
121
+ padding: 0 var(--container-padding-mobile, 16px) var(--container-padding-mobile, 16px);
122
122
  margin-bottom: 0;
123
123
  }
124
124
 
@@ -54,6 +54,11 @@
54
54
  &__content {
55
55
  flex: 1;
56
56
  overflow-y: auto;
57
+
58
+ @media (max-width: 768px) {
59
+ padding-left: var(--container-padding-mobile, 16px);
60
+ padding-right: var(--container-padding-mobile, 16px);
61
+ }
57
62
  }
58
63
 
59
64
  &__overlay {
@@ -69,7 +69,7 @@
69
69
  width: 20px;
70
70
  height: 20px;
71
71
  flex-shrink: 0;
72
- fill: var(--fill-primary);
72
+ color: var(--fill-primary);
73
73
  }
74
74
 
75
75
  &:hover {
@@ -12,6 +12,7 @@ import {
12
12
  SettingsIcon,
13
13
  EditIcon,
14
14
  } from '../../../icons'
15
+ import { Button } from 'src/v2/components'
15
16
 
16
17
  export interface SidebarItem {
17
18
  id: string
@@ -31,6 +32,7 @@ export interface SidebarCustomisationProps {
31
32
 
32
33
  // Default sidebar items - IDs must match useProviderNavigation.tsx
33
34
  export const defaultSidebarItems: SidebarItem[] = [
35
+ { id: 'home', label: 'Home', icon: null, visible: true },
34
36
  { id: 'events', label: 'Dates & Events', icon: <CalendarIcon />, visible: true },
35
37
  { id: 'sales', label: 'Bookings & Enquiries', icon: <BookingsIcon />, visible: true },
36
38
  { id: 'product-sets', label: 'Booking Types', icon: <BookingTypesIcon />, visible: true },
@@ -53,8 +55,8 @@ export const SidebarCustomisation: React.FC<SidebarCustomisationProps> = ({
53
55
  const [isEditing, setIsEditing] = useState(false)
54
56
 
55
57
  useEffect(() => {
56
- setItems(initialItems)
57
58
  if (!isEditing) {
59
+ setItems(initialItems)
58
60
  setItemsBeforeEdit(initialItems)
59
61
  }
60
62
  }, [initialItems, isEditing])
@@ -74,12 +76,17 @@ export const SidebarCustomisation: React.FC<SidebarCustomisationProps> = ({
74
76
  }
75
77
 
76
78
  const handleReset = () => {
77
- // Reset to defaults in UI - parent handles the actual default values
79
+ const resetItems = items.map((item) => {
80
+ const defaultItem = defaultSidebarItems.find((d) => d.id === item.id)
81
+ return defaultItem ? { ...item, label: defaultItem.label } : item
82
+ })
83
+ setItems(resetItems)
78
84
  onReset?.()
79
85
  }
80
86
 
81
87
  const handleCancel = () => {
82
88
  setItems(itemsBeforeEdit)
89
+ onItemsChange?.(itemsBeforeEdit)
83
90
  onCancel?.()
84
91
  setIsEditing(false)
85
92
  }
@@ -132,13 +139,12 @@ export const SidebarCustomisation: React.FC<SidebarCustomisationProps> = ({
132
139
  </div>
133
140
 
134
141
  <div className="sidebar-customisation__actions">
135
- <button
142
+ <Button
136
143
  type="button"
137
- className="sidebar-customisation__save-btn"
138
144
  onClick={handleSave}
139
145
  >
140
146
  Save Changes
141
- </button>
147
+ </Button>
142
148
  <button
143
149
  type="button"
144
150
  className="sidebar-customisation__reset-btn"
@@ -1,4 +1,5 @@
1
1
  import React from 'react'
2
+ import { FormField } from 'src/v2/components'
2
3
  import './SidebarNavItem.scss'
3
4
 
4
5
  export interface SidebarNavItemProps {
@@ -36,10 +37,9 @@ export const SidebarNavItem: React.FC<SidebarNavItemProps> = ({
36
37
  </span>
37
38
  </div>
38
39
  </div>
39
- <input
40
+ <FormField
40
41
  type="text"
41
42
  id={id}
42
- className={`sidebar-nav-item__input ${disabled ? 'sidebar-nav-item__input--disabled' : ''}`}
43
43
  value={label}
44
44
  onChange={(e) => onLabelChange?.(id, e.target.value)}
45
45
  disabled={disabled}
@@ -24,6 +24,9 @@
24
24
  --spacing-xxl: 64px;
25
25
  --spacing-super: 128px;
26
26
 
27
+ /* Layout tokens - Container insets */
28
+ --container-padding-mobile: 16px;
29
+
27
30
  /* Opacity tokens - Transparency values */
28
31
  --opacity-0: 0;
29
32
  --opacity-10: 0.1;