hippo-fw 0.9.6 → 0.9.7

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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/client/hippo/components/asset.jsx +22 -2
  3. data/client/hippo/components/asset.scss +1 -1
  4. data/client/hippo/components/data-list.jsx +38 -27
  5. data/client/hippo/components/data-list/data-list.scss +2 -0
  6. data/client/hippo/components/data-table.jsx +4 -2
  7. data/client/hippo/components/data-table/formatters.js +7 -0
  8. data/client/hippo/components/data-table/table-styles.scss +10 -0
  9. data/client/hippo/components/date-time.jsx +93 -133
  10. data/client/hippo/components/date-time.scss +1 -36
  11. data/client/hippo/components/form/api.js +4 -3
  12. data/client/hippo/components/form/fields.jsx +7 -1
  13. data/client/hippo/components/form/fields/date-wrapper.jsx +4 -4
  14. data/client/hippo/components/icon.jsx +10 -1
  15. data/client/hippo/components/query-builder.jsx +6 -1
  16. data/client/hippo/components/record-finder/query-layer.jsx +1 -1
  17. data/client/hippo/components/save-button.jsx +55 -0
  18. data/client/hippo/components/text-editor.jsx +10 -9
  19. data/client/hippo/components/text-editor/text-editor.scss +0 -1
  20. data/client/hippo/components/time-zone-select.jsx +60 -0
  21. data/client/hippo/models/asset.js +10 -5
  22. data/client/hippo/models/base.js +1 -1
  23. data/client/hippo/models/pub_sub.js +22 -67
  24. data/client/hippo/models/pub_sub/channel.js +28 -8
  25. data/client/hippo/models/pub_sub/map.js +57 -0
  26. data/client/hippo/models/query/array-result.js +5 -4
  27. data/client/hippo/models/query/field.js +19 -3
  28. data/client/hippo/models/system-setting.js +16 -1
  29. data/client/hippo/models/tenant.js +8 -7
  30. data/client/hippo/screens/system-settings.jsx +10 -12
  31. data/client/hippo/screens/user-management/edit-form.jsx +10 -11
  32. data/client/hippo/workspace/index.jsx +6 -3
  33. data/client/hippo/workspace/menu-option.jsx +2 -5
  34. data/client/hippo/workspace/menu.jsx +13 -1
  35. data/client/hippo/workspace/styles.scss +11 -26
  36. data/command-reference-files/initial/Gemfile +1 -1
  37. data/command-reference-files/model/client/appy-app/models/test_test.js +1 -1
  38. data/command-reference-files/model/spec/server/models/test_test_spec.rb +10 -0
  39. data/lib/hippo/api/cable.rb +0 -2
  40. data/lib/hippo/command/generate_model.rb +2 -3
  41. data/lib/hippo/spec_helper.rb +4 -2
  42. data/lib/hippo/tenant.rb +7 -1
  43. data/lib/hippo/version.rb +1 -1
  44. data/package-lock.json +60 -46
  45. data/package.json +5 -2
  46. data/spec/client/components/__snapshots__/record-finder.spec.jsx.snap +1 -0
  47. data/spec/client/components/__snapshots__/time-zone-select.spec.jsx.snap +48 -0
  48. data/spec/client/components/form.spec.jsx +7 -0
  49. data/spec/client/components/time-zone-select.spec.jsx +11 -0
  50. data/spec/client/models/pub_sub.spec.js +1 -3
  51. data/spec/client/models/pub_sub/channel.spec.js +45 -0
  52. data/spec/client/models/system-setting.spec.js +14 -0
  53. data/spec/client/workspace/__snapshots__/menu.spec.jsx.snap +9 -9
  54. data/spec/server/api/tenant_change_spec.rb +1 -1
  55. data/templates/client/models/model.js +1 -1
  56. data/templates/spec/factories/model.rb +6 -0
  57. data/templates/spec/server/model_spec.rb +4 -4
  58. data/views/hippo_root_view.erb +4 -0
  59. metadata +11 -10
  60. data/client/hippo/components/date-time/calendar.jsx +0 -113
  61. data/client/hippo/components/date-time/date-time-drop.jsx +0 -75
  62. data/client/hippo/components/date-time/date-time.scss +0 -157
  63. data/client/hippo/components/date-time/time.jsx +0 -119
  64. data/client/hippo/workspace/foo.js +0 -0
  65. data/command-reference-files/model/spec/fixtures/appy-app/test_test.yml +0 -11
  66. data/command-reference-files/model/spec/server/test_test_spec.rb +0 -10
  67. data/spec/client/components/date-time.spec.jsx +0 -20
@@ -1,5 +1,8 @@
1
1
  import SystemSettings from 'hippo/models/system-setting';
2
2
  import Asset from 'hippo/models/asset';
3
+ import Config from 'hippo/config';
4
+
5
+ jest.mock('hippo/config');
3
6
 
4
7
  const TEST_SETTINGS = {
5
8
  id: 1,
@@ -16,4 +19,15 @@ describe('SystemSettings Model', () => {
16
19
  ss.logo = { };
17
20
  expect(ss.logo).toBeInstanceOf(Asset);
18
21
  });
22
+
23
+ it('sets Config logo when updated', () => {
24
+ const ss = new SystemSettings(TEST_SETTINGS);
25
+ ss.logo = TEST_SETTINGS.logo;
26
+ ss.logo.file = { mockData: true };
27
+ expect(ss.logo.isDirty).toEqual(true);
28
+ ss.syncData = { foo: 'bar' };
29
+ ss.logo.file = null;
30
+ expect(Config.logo).toEqual(ss.logo.file_data);
31
+ expect(ss.syncData).toMatchObject({ settings: TEST_SETTINGS.settings });
32
+ });
19
33
  });
@@ -31,7 +31,7 @@ exports[`Workspace Menu has groups with screens 1`] = `
31
31
  Settings
32
32
  <span
33
33
  aria-hidden={true}
34
- className="fa fa-wrench"
34
+ className="fa fa-wrench icon"
35
35
  />
36
36
  </h4>
37
37
  </header>
@@ -42,11 +42,11 @@ exports[`Workspace Menu has groups with screens 1`] = `
42
42
  href={undefined}
43
43
  onClick={[Function]}
44
44
  >
45
- User Management
46
45
  <span
47
46
  aria-hidden={true}
48
- className="fa fa-group"
47
+ className="fa fa-group icon"
49
48
  />
49
+ User Management
50
50
  </a>
51
51
  <a
52
52
  aria-label={undefined}
@@ -54,11 +54,11 @@ exports[`Workspace Menu has groups with screens 1`] = `
54
54
  href={undefined}
55
55
  onClick={[Function]}
56
56
  >
57
- System Settings
58
57
  <span
59
58
  aria-hidden={true}
60
- className="fa fa-cogs"
59
+ className="fa fa-cogs icon"
61
60
  />
61
+ System Settings
62
62
  </a>
63
63
  <a
64
64
  aria-label={undefined}
@@ -66,11 +66,11 @@ exports[`Workspace Menu has groups with screens 1`] = `
66
66
  href={undefined}
67
67
  onClick={[Function]}
68
68
  >
69
- title
70
69
  <span
71
70
  aria-hidden={true}
72
- className="fa fa-red"
71
+ className="fa fa-red icon"
73
72
  />
73
+ title
74
74
  </a>
75
75
  </nav>
76
76
  `;
@@ -82,10 +82,10 @@ exports[`Workspace Menu has renders menu options 1`] = `
82
82
  href={undefined}
83
83
  onClick={[Function]}
84
84
  >
85
- title
86
85
  <span
87
86
  aria-hidden={true}
88
- className="fa fa-red"
87
+ className="fa fa-red icon"
89
88
  />
89
+ title
90
90
  </a>
91
91
  `;
@@ -16,7 +16,7 @@ describe "Tenant changes", api: true, vcr: VCR_OPTS do
16
16
  'SERVER_NAME' => "#{tenant.slug}.example.ua",
17
17
  }
18
18
 
19
- expect(tenant.reload.slug).to eq('RED')
19
+ expect(tenant.reload.slug).to eq('red')
20
20
  email = Mail::TestMailer.deliveries.last
21
21
  expect(email).not_to be_nil
22
22
  expect(email.body).to include(tenant.domain)
@@ -1,5 +1,5 @@
1
1
  import {
2
- BaseModel, identifiedBy, identifier, belongsTo, hasMany, field, computed
2
+ BaseModel, identifiedBy, identifier, field, session, belongsTo, hasMany,
3
3
  } from './base';
4
4
 
5
5
  @identifiedBy('<%= identifier %>/<%= file_name %>')
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :<%= file_name %>, class: <%= namespace %>::<%= class_name %> do
3
+ tenant { Hippo::Tenant.current }
4
+
5
+ end
6
+ end
@@ -1,10 +1,10 @@
1
- require_relative 'spec_helper'
1
+ require_relative '../spec_helper'
2
2
 
3
- describe <%= identifier %>::<%= class_name %> do
3
+ describe <%= namespace %>::<%= class_name %> do
4
4
 
5
5
  it "can be instantiated" do
6
- model = <%= identifier %>::<%= class_name %>.new
7
- expect( model ).to be_an(<%= identifier %>::<%= class_name %>)
6
+ model = <%= namespace %>::<%= class_name %>.new
7
+ expect(model).to be_an(<%= namespace %>::<%= class_name %>)
8
8
  end
9
9
 
10
10
  end
@@ -3,6 +3,10 @@
3
3
  <head>
4
4
  <meta charset="utf-8">
5
5
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <link rel="apple-touch-icon" href="/apple-touch-icon.png">
7
+ <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
8
+ <meta name="apple-mobile-web-app-capable" content="yes">
9
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
6
10
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui"/>
7
11
  <title><%= Hippo::Extensions.controlling.title %></title>
8
12
  <style>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hippo-fw
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.6
4
+ version: 0.9.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Stitt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-19 00:00:00.000000000 Z
11
+ date: 2017-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activejob
@@ -702,14 +702,11 @@ files:
702
702
  - client/hippo/components/data-list.jsx
703
703
  - client/hippo/components/data-list/data-list.scss
704
704
  - client/hippo/components/data-table.jsx
705
+ - client/hippo/components/data-table/formatters.js
705
706
  - client/hippo/components/data-table/header-cell.jsx
706
707
  - client/hippo/components/data-table/table-styles.scss
707
708
  - client/hippo/components/date-time.jsx
708
709
  - client/hippo/components/date-time.scss
709
- - client/hippo/components/date-time/calendar.jsx
710
- - client/hippo/components/date-time/date-time-drop.jsx
711
- - client/hippo/components/date-time/date-time.scss
712
- - client/hippo/components/date-time/time.jsx
713
710
  - client/hippo/components/enabled.js.erb
714
711
  - client/hippo/components/field-validation.js
715
712
  - client/hippo/components/form.jsx
@@ -742,6 +739,7 @@ files:
742
739
  - client/hippo/components/record-finder/query-layer.jsx
743
740
  - client/hippo/components/record-finder/record-finder.scss
744
741
  - client/hippo/components/request-spinner/index.js
742
+ - client/hippo/components/save-button.jsx
745
743
  - client/hippo/components/screen.jsx
746
744
  - client/hippo/components/select-field/index.js
747
745
  - client/hippo/components/select-field/styles.scss
@@ -764,6 +762,7 @@ files:
764
762
  - client/hippo/components/text-editor/plugins.js
765
763
  - client/hippo/components/text-editor/renderer.jsx
766
764
  - client/hippo/components/text-editor/text-editor.scss
765
+ - client/hippo/components/time-zone-select.jsx
767
766
  - client/hippo/components/tool-tip.jsx
768
767
  - client/hippo/components/toolbar/changes-notification.scss
769
768
  - client/hippo/components/toolbar/index.js
@@ -799,6 +798,7 @@ files:
799
798
  - client/hippo/models/index.js
800
799
  - client/hippo/models/pub_sub.js
801
800
  - client/hippo/models/pub_sub/channel.js
801
+ - client/hippo/models/pub_sub/map.js
802
802
  - client/hippo/models/query.js
803
803
  - client/hippo/models/query/array-result.js
804
804
  - client/hippo/models/query/clause.js
@@ -855,7 +855,6 @@ files:
855
855
  - client/hippo/testing/screens.js
856
856
  - client/hippo/testing/utils.js
857
857
  - client/hippo/user.js
858
- - client/hippo/workspace/foo.js
859
858
  - client/hippo/workspace/index.jsx
860
859
  - client/hippo/workspace/menu-group.jsx
861
860
  - client/hippo/workspace/menu-option.jsx
@@ -913,8 +912,7 @@ files:
913
912
  - command-reference-files/model/lib/appy-app/model.rb
914
913
  - command-reference-files/model/lib/appy-app/models/test_test.rb
915
914
  - command-reference-files/model/spec/client/models/test_test.spec.js
916
- - command-reference-files/model/spec/fixtures/appy-app/test_test.yml
917
- - command-reference-files/model/spec/server/test_test_spec.rb
915
+ - command-reference-files/model/spec/server/models/test_test_spec.rb
918
916
  - command-reference-files/screen/client/appy-app/screens/ready-set-go.jsx
919
917
  - command-reference-files/screen/config/screens.rb
920
918
  - command-reference-files/screen/spec/client/screens/ready-set-go.spec.jsx
@@ -1071,21 +1069,23 @@ files:
1071
1069
  - spec/client/components/__snapshots__/network-activity-overlay.spec.jsx.snap
1072
1070
  - spec/client/components/__snapshots__/query-builder.spec.jsx.snap
1073
1071
  - spec/client/components/__snapshots__/record-finder.spec.jsx.snap
1072
+ - spec/client/components/__snapshots__/time-zone-select.spec.jsx.snap
1074
1073
  - spec/client/components/asset.spec.jsx
1075
1074
  - spec/client/components/data-list.spec.jsx
1076
1075
  - spec/client/components/data-table.spec.jsx
1077
- - spec/client/components/date-time.spec.jsx
1078
1076
  - spec/client/components/form.spec.jsx
1079
1077
  - spec/client/components/master-detail.spec.jsx
1080
1078
  - spec/client/components/network-activity-overlay.spec.jsx
1081
1079
  - spec/client/components/query-builder.spec.jsx
1082
1080
  - spec/client/components/record-finder.spec.jsx
1081
+ - spec/client/components/time-zone-select.spec.jsx
1083
1082
  - spec/client/extension/base.spec.js
1084
1083
  - spec/client/lib/util.spec.js
1085
1084
  - spec/client/models/asset.spec.js
1086
1085
  - spec/client/models/base.spec.js
1087
1086
  - spec/client/models/collection.spec.js
1088
1087
  - spec/client/models/pub_sub.spec.js
1088
+ - spec/client/models/pub_sub/channel.spec.js
1089
1089
  - spec/client/models/query.spec.js
1090
1090
  - spec/client/models/sync.spec.js
1091
1091
  - spec/client/models/system-setting.spec.js
@@ -1193,6 +1193,7 @@ files:
1193
1193
  - templates/spec/client/models/model.spec.js
1194
1194
  - templates/spec/client/screen.spec.jsx
1195
1195
  - templates/spec/client/setup.js
1196
+ - templates/spec/factories/model.rb
1196
1197
  - templates/spec/fixtures/namespace/model.yml
1197
1198
  - templates/spec/server/model_spec.rb
1198
1199
  - templates/spec/server/spec_helper.rb
@@ -1,113 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { observer } from 'mobx-react';
4
- import { action } from 'mobx';
5
- import cx from 'classnames';
6
- import range from 'lodash/range';
7
- import chunk from 'lodash/chunk';
8
- import Header from 'grommet/components/Header';
9
- import Button from 'grommet/components/Button';
10
- import Title from 'grommet/components/Title';
11
- import LinkPreviousIcon from 'grommet/components/icons/base/LinkPrevious';
12
- import LinkNextIcon from 'grommet/components/icons/base/LinkNext';
13
-
14
- const Day = ({ i, w, d, className, ...props }) => {
15
- const prevMonth = 0 === w && i > 7;
16
- const nextMonth = w >= 4 && i <= 14;
17
- const cls = cx(className, {
18
- 'prev-month': prevMonth,
19
- 'next-month': nextMonth,
20
- 'current-day': !prevMonth && !nextMonth && i === d,
21
- });
22
-
23
- return <td className={cls} {...props}>{i}</td>;
24
- };
25
-
26
-
27
- @observer
28
- export default class Calendar extends React.PureComponent {
29
- static propTypes = {
30
- moment: PropTypes.object.isRequired,
31
- onChange: PropTypes.func.isRequired,
32
- }
33
-
34
- @action.bound
35
- selectDate(i, w) {
36
- const prevMonth = 0 === w && i > 7;
37
- const nextMonth = w >= 4 && i <= 14;
38
- const m = this.props.moment;
39
-
40
- m.date(i);
41
- if (prevMonth) m.subtract(1, 'month');
42
- if (nextMonth) m.add(1, 'month');
43
- this.props.onChange(m);
44
- this.forceUpdate();
45
- }
46
-
47
- @action.bound
48
- prevMonth(e) {
49
- e.preventDefault();
50
- this.props.onChange(this.props.moment.subtract(1, 'month'));
51
- this.forceUpdate();
52
- }
53
-
54
- @action.bound
55
- nextMonth(e) {
56
- e.preventDefault();
57
- this.props.onChange(this.props.moment.add(1, 'month'));
58
- this.forceUpdate();
59
- }
60
-
61
- render() {
62
- const m = this.props.moment;
63
- const d = m.date();
64
- const d1 = m.clone().subtract(1, 'month').endOf('month').date();
65
- const d2 = m.clone().date(1).day();
66
- const d3 = m.clone().endOf('month').date();
67
- const days = [].concat(
68
- range((d1 - d2) + 1, d1 + 1),
69
- range(1, d3 + 1),
70
- range(1, ((42 - d3) - d2) + 1),
71
- );
72
- const weeks = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
73
-
74
- return (
75
- <div className={cx('calendar', this.props.className)}>
76
-
77
- <Header key='header' justify='between'>
78
- <Button className="previous" icon={<LinkPreviousIcon />} onClick={this.prevMonth} />
79
- <Title className="title" responsive={false}>
80
- {m.format('MMMM YYYY')}
81
- </Title>
82
- <Button className="next" icon={<LinkNextIcon />} onClick={this.nextMonth} />
83
- </Header>
84
-
85
- <div className="grid">
86
- <table>
87
- <thead>
88
- <tr>
89
- {weeks.map((w, i) => <td key={i}>{w}</td>)}
90
- </tr>
91
- </thead>
92
-
93
- <tbody>
94
- {chunk(days, 7).map((row, w) =>
95
- <tr key={w}>
96
- {row.map(i =>
97
- <Day
98
- key={i}
99
- i={i}
100
- d={d}
101
- w={w}
102
- onClick={() => this.selectDate(i, w)}
103
- />,
104
- )}
105
- </tr>,
106
- )}
107
- </tbody>
108
- </table>
109
- </div>
110
- </div>
111
- );
112
- }
113
- }
@@ -1,75 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { action, observable } from 'mobx';
4
- import { observer } from 'mobx-react';
5
- import CSSClassnames from 'grommet/utils/CSSClassnames';
6
- import CalendarIcon from 'grommet/components/icons/base/Calendar';
7
- import ClockIcon from 'grommet/components/icons/base/Clock';
8
- import Box from 'grommet/components/Box';
9
- import cn from 'classnames';
10
-
11
- import Calendar from './calendar';
12
- import Time from './time';
13
-
14
- const FORM_FIELD = CSSClassnames.FORM_FIELD;
15
- const CLASS_ROOT = 'date-time';
16
-
17
- @observer
18
- export default class DateTimeDrop extends React.Component {
19
- static propTypes = {
20
- value: PropTypes.object.isRequired,
21
- onChange: PropTypes.func.isRequired,
22
- minuteStep: PropTypes.number,
23
- }
24
-
25
- static className = 'date-time-drop';
26
-
27
- @observable isShowingTime = false;
28
-
29
- @action.bound
30
- toggleTabs() {
31
- this.isShowingTime = !this.isShowingTime;
32
- }
33
-
34
- render() {
35
- return (
36
- <Box
37
- className={`${this.constructor.className} component date-time-drop`}
38
- >
39
- <Box
40
- direction='row'
41
- className="tabs"
42
- >
43
- <Box
44
- onClick={this.isShowingTime ? this.toggleTabs : null}
45
- colorIndex={this.isShowingTime ? '' : 'neutral-1'}
46
- align="center" justify="center" flex direction='row' className="calendar"
47
- >
48
- <CalendarIcon />
49
- Day
50
- </Box>
51
- <Box
52
- onClick={this.isShowingTime ? null : this.toggleTabs}
53
- colorIndex={this.isShowingTime ? 'neutral-1' : ''}
54
- align="center" justify="center" flex direction='row' className="time"
55
- >
56
- <ClockIcon />
57
- Time
58
- </Box>
59
- </Box>
60
- <div className={cn('tab', { active: !this.isShowingTime })}>
61
- <Calendar
62
- moment={this.props.value}
63
- onChange={this.props.onChange}
64
- />
65
- </div>
66
- <div className={cn('tab', { active: this.isShowingTime })}>
67
- <Time
68
- moment={this.props.value}
69
- onChange={this.props.onChange}
70
- />
71
- </div>
72
- </Box>
73
- );
74
- }
75
- }
@@ -1,157 +0,0 @@
1
- @import '../../styles/global';
2
-
3
- .date-time-drop {
4
- $slider-handle-size: 20px;
5
- $slider-size: 4px;
6
- $slider-fix: 20px;
7
- .calendar {
8
- header {
9
- min-height: 50px;
10
- }
11
- .grid {
12
- width: 100%;
13
- padding: 12px;
14
- }
15
- table {
16
- width: 100%;
17
- border-collapse: collapse;
18
- border-spacing: 0;
19
- }
20
- td {
21
- padding: 8px 0;
22
- text-align: center;
23
- cursor: pointer;
24
- }
25
- thead {
26
- td {
27
- color: $secondary-text-color;
28
- font-weight: normal;
29
- }
30
- }
31
- tbody td {
32
- color: #666666;
33
-
34
- &:hover {
35
- background-color: $hover-background-color;
36
- color: $hover-text-color;
37
- }
38
- }
39
- .current-day {
40
- background-color: $brand-color;
41
- color: $colored-text-color;
42
- font-weight: 700;
43
- }
44
- .prev-month,
45
- .next-month {
46
- color: #999999;
47
- }
48
- }
49
-
50
-
51
- .time-picker {
52
- color: $background-color;
53
- padding-top: 50px;
54
-
55
- .showtime {
56
- text-align: center;
57
- }
58
-
59
- .am-pm {
60
- display: flex;
61
- flex-direction: column;
62
- margin-left: 10px;
63
- }
64
-
65
- .separater {
66
- display: inline-block;
67
- font-size: 32px;
68
- font-weight: bold;
69
- color: $inverse-background-color;
70
- width: 32px;
71
- height: 65px;
72
- line-height: 65px;
73
- text-align: center;
74
- }
75
-
76
- .time-text {
77
- position: relative;
78
- left: -10px;
79
- font-size: 15px;
80
- color: $inverse-background-color;
81
- margin-top: 7px;
82
- margin-bottom: 10px;
83
- }
84
-
85
- .sliders {
86
- padding: 40px;
87
- max-width: 500px;
88
- margin: auto;
89
- }
90
-
91
- .minutes,
92
- .hour {
93
- width: 65px;
94
- height: 65px;
95
- padding: 0;
96
- font-size: 38px;
97
- background-color: $inverse-background-color;
98
- border-radius: 3px;
99
- text-align: center;
100
- &:focus {
101
- padding: 0;
102
- }
103
- }
104
- }
105
-
106
-
107
- .u-slider-time {
108
- position: relative;
109
- display: inline-block;
110
- background-color: $control-background-color;
111
- border-radius: 3px;
112
- height: $slider-size;
113
- width: 100%;
114
- cursor: pointer;
115
-
116
- .value {
117
- position: absolute;
118
- background-color: $brand-color;
119
- border-radius: 3px;
120
- top: 0;
121
- height: 100%;
122
- }
123
-
124
- .handle {
125
- position: absolute;
126
- width: $slider-size;
127
- height: $slider-size;
128
-
129
- &:after {
130
- position: relative;
131
- display: block;
132
- content: '';
133
- top: -$slider-fix/2 - 2;
134
- left: -($slider-size+$slider-fix)/2;
135
- width: $slider-size + $slider-fix;
136
- height: $slider-size + $slider-fix;
137
- background-color: #fff;
138
- border: 3px solid $brand-color; //inverse-background-color;
139
- border-radius: 50%;
140
- cursor: pointer;
141
- }
142
- }
143
- }
144
-
145
- .tab {
146
- display: none;
147
- &.active { display: block; }
148
- }
149
-
150
- .tabs {
151
- > * { padding: 0.5rem; }
152
- margin-bottom: 10px;
153
- border-bottom: 1px solid;
154
- .grommetux-control-icon { margin-right: 0.5rem; }
155
- }
156
-
157
- }